时间序列中 x 轴上周期的变化?

时间序列中 x 轴上周期的变化?

在此处输入图片描述

我希望我的图表仅显示以下时间段:1986、1992、1998、2004、2010、2016,而不是图表中显示的时间段。有人知道解决办法吗?谢谢!

.dat 文件中的数据格式为:

date value
1986-03-01 0.11
1986-06-01 0.45
...
2016-03-01 0.78

乳胶代码:

\usepackage{pgfplots}
\usepackage{amsthm, amsfonts, amsmath, amssymb, mathrsfs, enumerate,graphicx}
\usepackage{subcaption}
\usepgfplotslibrary{dateplot}
\usepackage{filecontents}
\pgfplotsset{height=5cm,width=8cm,compat=newest}
\usepgfplotslibrary{dateplot}

\begin{figure}[H]
\begin{subfigure}{.5\linewidth}\centering
\begin{tikzpicture}
\begin{axis}[legend style={at={(0.5,-0.35)},anchor=north},
  date coordinates in=x,
  x tick label style={/pgf/number format/1000 sep=},
  xticklabel={\year},
  ylabel=,
  xlabel=Time,
  enlargelimits=0.10,
  legend columns=1,
]
\addplot[no markers, color=black]
  table [x=date, y index=1] {msardhp.dat};
\legend{}
\end{axis}
\end{tikzpicture}
\end{subfigure}%
\caption{}
\end{figure}

答案1

您可以xtick像使用普通轴一样使用 来指定刻度位置,只需使用有效的日期格式字符串即可。我还必须设置date ZERO才能使其工作。最后,我删除了x tick label style,它在这里没有任何效果。

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\pgfplotsset{height=5cm,width=8cm,compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[legend style={at={(0.5,-0.35)},anchor=north},
  date coordinates in=x,
  xticklabel={\year},
  date ZERO={1986-01-01},
  xtick={%
    1986-01-01,
    1992-01-01,
    1998-01-01,
    2004-01-01,
    2010-01-01,
    2016-01-01%
},
%  ylabel=,
  xlabel=Time,
  enlargelimits=0.10,
  legend columns=1,
]
\addplot[no markers, color=black]
  table [x=date, y index=1] {
date value
1986-03-01 0.11
1986-06-01 0.45
2016-03-01 0.78
};
\legend{}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容