PGFPlots 缺少列数据,但无论如何都显示所有 x 值

PGFPlots 缺少列数据,但无论如何都显示所有 x 值

我有一组数据集,其中某些列缺少数据。我想将此数据的各列绘制在具有一致大小的 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可以解决问题,而无需明确设置限制。

相关内容