对于堆积条形图,如何将零高度条呈现为不可见?

对于堆积条形图,如何将零高度条呈现为不可见?

我正在使用 nifty 包创建堆积条形图pgfplots。结果发现我的许多数据值都是零——在给定层中只有几列有非零条目。使用ybar stacked绘图样式,为零的数据值将呈现为可见的线条(对于thick线条尤其明显)。

例如,这里有一个 MWE 及其输出:

% arara: pdflatex
\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[ybar stacked, thick]
    \addplot+ coordinates {(1,3) (2,0) (3,0)};
    \addplot+ coordinates {(1,0) (2,5) (3,0)};
    \addplot+ coordinates {(1,0) (2,0) (3,3)};
    \addplot+ coordinates {(1,0) (2,0) (3,1)};
  \end{axis}
\end{tikzpicture}
\end{document}

请注意第 2 列和第 3 列底部的蓝线:

在此处输入图片描述

有什么方法可以pgfplots让这些零值不可见(即根本不可见)?例如,这意味着第 2 列和第 3 列底部的蓝线将消失。

答案1

我认为 pgfplots 根本不支持通用解决方案。

它可能应该成为一个功能请求。

我特此接受它作为功能请求,并将其添加到我的待办事项列表中。目前,Qrrbrbirlbel(类似 Tufte every axis plot/.append style={draw=none})提出的解决方法可能是目前最好的解决方案。

编辑该功能已同时实现。使用最新版本pgfplots(以及适合兼容级别的设置,如compat=1.12)的图表如下所示:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[ybar stacked, thick]
    \addplot+ coordinates {(1,3) (2,0) (3,0)};
    \addplot+ coordinates {(1,0) (2,5) (3,0)};
    \addplot+ coordinates {(1,0) (2,0) (3,3)};
    \addplot+ coordinates {(1,0) (2,0) (3,1)};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容