我希望我的图表仅显示以下时间段: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}