pgfplots - 如何以小时:分钟格式从 csv 中绘制秒数?

pgfplots - 如何以小时:分钟格式从 csv 中绘制秒数?

我在一个.csv文件中有以秒为x值的数据。我想x以小时:分钟格式勾选轴,例如:0:00,,,...0:301:001:30

我该如何重新定义价值观的解释以适应不同的表现风格?

数据样本

    seconds values
    30       3.98
    60       3.97
    90       3.96
    120      3.96
    150      3.95
    ...      ...
   3210      3.45

答案1

您可以使用 将秒转换为小时x filter,然后在表达式中拆分标签的小时和分钟xticklabel

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    % Convert seconds to hours
    x filter/.code={\pgfmathparse{#1/3600}},
    xticklabel={ % Split into hours and minutes
        \pgfmathsetmacro\hours{floor(\tick)}%
        \pgfmathsetmacro\minutes{(\tick-\hours)*0.6}%
        % Use some trickery to get leading zeros
        \pgfmathprintnumber{\hours}:\pgfmathprintnumber[fixed, fixed zerofill, skip 0.=true, dec sep={}]{\minutes}%
    },
    xtick={0,0.25,...,1}
]
\addplot table {
    seconds values
    30       3.98
    60       3.97
    90       3.96
    120      3.96
   3210      3.95
};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容