pgfplots dateplot:按整点自动贴标签?

pgfplots dateplot:按整点自动贴标签?

我有一些数据作为时间函数。我使用包dateplot中的数据绘制它pgfplots。我希望有 x 个以小时和分钟为单位的标签。对于每一天,我希望有一个额外的DD.MM.YYYY标签。这个条目每天只应出现一次,这样刻度标签就不会太杂乱。(请参阅下面的 MWE 带图片)

问题 1:有没有办法每三个小时自动获取一个 x 刻度标签?现在,我必须提供包含所有 x 刻度标签的完整列表。

问题 2:我能以某种方式自动添加日期标签吗?

\documentclass{article}
\usepackage{tikz,pgfplots}
\usepgfplotslibrary{dateplot}
\begin{document}
\begin{tikzpicture}
   \begin{axis}[compat=1.5.1,
        date coordinates in=x,
        xticklabel={\hour:\minute},
        xticklabel style= {rotate=45,anchor=north east},
        xtick={
            {2010-06-22 9:00},
            {2010-06-22 12:00},
            {2010-06-22 15:00},
            {2010-06-22 18:00},
            {2010-06-22 21:00},
            {2010-06-23 00:00},
            {2010-06-23 03:00},
            {2010-06-23 06:00},
            {2010-06-23 09:00}
        },
        date ZERO=2010-06-22,
        xlabel=Date and time,
        xlabel shift=20pt,
        ylabel=Random stuff,
        xmin={2010-06-22 9:00},
        xmax ={2010-06-23 07:25},
        minor x tick num = 2,
        clip=false
        ]
        \addplot coordinates {
            (2010-06-22 09:06:03,0.1)
            (2010-06-22 16:14:07,0.8)
            (2010-06-23 07:00:25,1)
        };
        \node[anchor=north] at (xticklabel cs:0.1) {22.06.2010};
        \node[anchor=north] at (xticklabel cs:0.75) {22.06.2010};
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

这主要是针对问题2的回答:如何自动放置日期标签:

您可以使用它extra x ticks来简化这些标签的生成:它允许您将所需的位置与它们的外观分开。

您可以通过添加以下行来实现

    xlabel shift=10pt,
    extra x ticks={2010-06-22 9:00,2010-06-23},
    extra x tick style={
        xticklabel=\day.\month.\year,
        every x tick label/.style={anchor=north west,yshift=-35pt},
    },

关于您的第一个问题(我如何每 3 小时生成一次刻度位置):目前没有办法按照要求的方式调整刻度标签生成(1,2,...,5据我所知,pgfplots 的标准使用方式不适用于日期 - 至少不适用于日期时间)。

相关内容