如何在 pgfplots 中保留那些没有 y 值的坐标的 xtick 标签

如何在 pgfplots 中保留那些没有 y 值的坐标的 xtick 标签

我根据表格中的坐标构建图表。对于某些坐标,y未给出值,这导致相关值xtick label 消失。但我希望这些xtick labels坐标的坐标显示在我的图表上。怎么做?这是我的 MWE:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\usepackage{filecontents} 

\begin{document}
\begin{filecontents}{test.dat} 
time    id  a
59:58   1   1
59:59   2   4
00:00   3   nan
00:01   4   16
00:02   5   25
\end{filecontents}

\begin{tikzpicture}
\begin{axis}[
title={example},
xlabel=time,
ylabel={$data$},
xticklabel style={rotate=90},
xtick=data,
xticklabels from table={test.dat}{time} 
]
\addplot [blue,mark=*] table[x=id,y=a] {test.dat};
\end{axis}
\end{tikzpicture}

\end{document}

enter image description here

答案1

对于这种情况,您可以使用xtick={1,...,5}而不是xtick=data

enter image description here

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\usepackage{filecontents} 

\begin{document}
\begin{filecontents}{test.dat} 
time    id  a
59:58   1   1
59:59   2   4
00:00   3   nan
00:01   4   16
00:02   5   25
\end{filecontents}

\begin{tikzpicture}
\begin{axis}[
title={example},
xlabel=time,
ylabel={$data$},
xticklabel style={rotate=90},
xtick={1,...,5},
xticklabels from table={test.dat}{time} 
]
\addplot [blue,mark=*] table[x=id,y=a] {test.dat};
\end{axis}
\end{tikzpicture}

\end{document}

相关内容