pgfplots:显示 ymin 以下数据的 x 刻度标签

pgfplots:显示 ymin 以下数据的 x 刻度标签

我有一个非常简单的条形图。我的问题是,当我设置 ymin 值时,所有值低于该阈值的 x 标签都不会显示。我宁愿显示标签而不显示值。

小例子:

\begin{tikzpicture} 
\begin{axis}[
    ybar,
    ymin = 5,
    xtick=data,
    symbolic x coords={a,b,c},
    ]
    \addplot coordinates {(a,7) (b,9) (c,4)};
\end{axis}
\end{tikzpicture}

在此处输入图片描述 在此处输入图片描述

左图无 ymin,右图有 ymin

谁能告诉我如何实现这个目标?

提前致谢。

答案1

你真的如果轴不是从零开始,则不应使用条形图(这违背了使用条形图的目的,并导致各种数据误传)。

话虽如此,但无论如何,这里有一种方法可以做到:您可以使用restrict y to domain*=5:inf截断轴下限处的值(低于阈值的值被分配阈值)。这样,所有条形图都会被绘制,有些条形图的高度为零。为了确保这些条形图不可见,最好在选项axis on top中进行设置axis

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture} 
\begin{axis}[
    axis on top,
    ybar,
    ymin = 5,
    restrict y to domain*=5:inf,
    xtick=data,
    symbolic x coords={a,b,c}
    ]
    \addplot coordinates {(a,7) (b,9) (c,4)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容