我有一组数据集,其中某些列缺少数据。我想将此数据的各列绘制在具有一致大小的 x 轴的不同图上。
以下是 MWE:
\documentclass[]{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{temp.csv}
X, Y, Z,
A, 2, 3,
B, 3, 6,
C, 4, nan,
D, nan, nan,
E, 6, nan,
\end{filecontents}
\begin{document}
\pgfplotstableread[col sep=comma,]{temp.csv}\datatable
\begin{tikzpicture},
\centering
\begin{axis}[
xtick={0,...,4},
xticklabels from table={\datatable}{X},
]
\addplot table [x expr=\coordindex, y={Y}] {\datatable};
\addplot table [x expr=\coordindex, y={Z}] {\datatable};
\end{axis}
\end{tikzpicture}
\end{document}
如果您编译此文档,您将看到分别代表 Y 列和 Z 列的两行。现在,如果您注释掉\addplot table [x expr=\coordindex, y={Y}] {\datatable};
,x 轴将缩减为标签 A 和 B,因为 Z 列仅包含这些行的值。
有没有办法强制仅 Z 列的图显示 x 轴上的所有五个标签?
答案1
因此,在对这个问题大惊小怪并发布此问题后,我发现了答案。答案很简单,只需输入:
xmin=0,
xmax=4,
进入axis
环境。我错误地认为密钥xtick
可以解决问题,而无需明确设置限制。