pgfplot 带有微秒时间戳

pgfplot 带有微秒时间戳

我的示例如下:

\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}

\begin{filecontents*}{data.csv}
(10-18-2018 16:50:27.871,0)
(10-18-2018 16:50:27.888,8)
(10-18-2018 16:50:27.904,25)
(10-18-2018 16:50:27.921,41)
(10-18-2018 16:50:27.938,59)
(10-18-2018 16:50:27.954,75)
(10-18-2018 16:50:27.971,92)
(10-18-2018 16:50:27.988,45)
(10-18-2018 16:50:28.005,62)
(10-18-2018 16:50:28.022,79)
(10-18-2018 16:50:28.039,96)
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
date coordinates in=x,
xticklabel style= {rotate=60,anchor=north east},
xlabel=X,
ylabel=Y
]
\addplot table[ignore chars={(,)},col sep=comma] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

明显地:

  1. x 标签不正确,我希望它可以自动匹配数据范围。我不希望添加 min-x/max-x 语句。
  2. 数据点没有分布到整个图表,而是全部位于中心。听起来像微秒没有被解析!

答案1

Ulrike Fischer 介绍了这个非常好的答案一个通用的解析器。(当然,如果你想同时改变年份和毫秒,你会遇到,dimension too large errors但使用 Ulrike 的优秀解析器,你可以专注于你关心的数据。)(我也强调使用了这个术语\marmottimeparseaux,所以这是我没有因为提高土拨鼠意识而受到指责的案例之一。;-)

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
%\usepgfplotslibrary{dateplot}
\pgfplotsset{compat=1.16}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
(10-18-2018 16:50:27.871,0)
(10-18-2018 16:50:27.888,8)
(10-18-2018 16:50:27.904,25)
(10-18-2018 16:50:27.921,41)
(10-18-2018 16:50:27.938,59)
(10-18-2018 16:50:27.954,75)
(10-18-2018 16:50:27.971,92)
(10-18-2018 16:50:27.988,45)
(10-18-2018 16:50:28.005,62)
(10-18-2018 16:50:28.022,79)
(10-18-2018 16:50:28.039,96)
\end{filecontents*}

\usepackage{xfp}
% from https://tex.stackexchange.com/a/445564/121799
\def\marmottimeparseaux#1-#2-#3 #4:#5:#6xxx{\fpeval{#5* 60 + #6}}
\ExplSyntaxOn
\cs_new:Nn \marmot_timeparse:n { \marmottimeparseaux #1xxx }
\newcommand\TimeParse[1]{\exp_args:Nf\marmot_timeparse:n {#1}}
\ExplSyntaxOff

\begin{document}
 \begin{tikzpicture}
  \begin{axis}
   \addplot table [,ignore chars={(,)},col sep=comma,
   x expr=\TimeParse{\thisrowno{0}},y expr=\thisrowno{1}] {data.csv};
  \end{axis}
 \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容