如何告诉 pgfplots 保留空的“系列”?

如何告诉 pgfplots 保留空的“系列”?

我有一个定义为符号的情节xticklabels

在我的图的修改版本中,我想设置ymin值。执行此操作时,我的图会自动更新:所有仅具有 y 值低于此新 ymin 的点的 x 系列都被删除。我该如何更改此行为?

以下是一个例子:

\documentclass[a4paper, landscape]{article}

\usepackage{pgfplots}
\usepackage[utf8]{inputenc}
\usepackage[margin=0.5cm]{geometry}

\pgfplotsset{compat=1.3}

\begin{document}

\centering
\begin{tikzpicture}
  \begin{axis}[
    symbolic x coords={X0, X1, X2, X3},
    xtick=data,
    grid=major,
    only marks
    ]
    \addplot coordinates {(X0,0) (X1,1) (X2,2) (X3,3)};
    \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}[
    symbolic x coords={X0, X1, X2, X3},
    xtick=data,
    grid=major,
    only marks,
    ymin=1
    ]
    \addplot coordinates {(X0,0) (X1,1) (X2,2) (X3,3)};
    \end{axis}
\end{tikzpicture}

\end{document}

结果如下。在第二张图上,我希望 X0 xtick 标签可见,即使它的点不可见。

在此处输入图片描述

答案1

手册中似乎没有明确说明这一点,但你可以通过指定xmin=X0和来获得所需的结果enlarge x limits=true。如果没有后者,X0将位于 y 轴上,即左侧没有空间X0

示例输出

\documentclass[a4paper, landscape]{article}

\usepackage{pgfplots}
\usepackage[utf8]{inputenc}
\usepackage[margin=0.5cm]{geometry}

\pgfplotsset{compat=1.3}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    symbolic x coords={X0, X1, X2, X3},
    xtick=data,
    grid=major,
    only marks,
    ymin=1,
    xmin=X0,enlarge x limits=true
    ]
    \addplot coordinates {(X0,0) (X1,1) (X2,2) (X3,3)};
    \end{axis}
\end{tikzpicture}

\end{document}

一般情况下,您还需要指定xmax捕获所有数据点。

相关内容