我正在制作一个堆叠条形图或两个带有误差线的系列,以描述其总和的不确定性。我将误差线用作第二张图的属性。
如果我使用 \pgfplotset{compat=1.9},那么第二个绘图值为零(没有矩形)的点不会出现误差线,即使误差量非零!
毫不奇怪,手册说 pgfplots 1.9 带有“抑制堆积条形图中的空增量”功能,该功能在 compat=1.9 或更高版本中启用。
确实看起来像是一个错误。我做错了什么吗?
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
% Uncomment to make second error bar disappear
\pgfplotsset{compat=1.9}
\begin{filecontents*}{dataTable.txt}
xpos firsty secondy yerrdown yerrup
1 0 1 0.1 0.1
2 1 0 1.5 0.4
3 2 1 0.3 0.4
\end{filecontents*}
\begin{document}
\pgfplotstableread{dataTable.txt}\dataTable
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[
ybar stacked
]
% Layers needed to get error bars on top of lower blue rectangle
\addplot table[on layer=axis grid,x=xpos, y=firsty]{\dataTable};
\addplot plot[on layer=axis lines,error bars/.cd, y dir=both, y explicit] table[x=xpos, y=secondy, y error minus=yerrdown, y error plus=yerrup]{\dataTable};
\end{axis}
\end{tikzpicture}
\end{document}
兼容1.9: 不兼容1.9:
答案1
您可以compat/bar nodes=1.8
在使用时使用 来使错误栏出现compat=1.9
。
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{
compat=1.9,
compat/bar nodes=1.8
}
\begin{filecontents*}{dataTable.txt}
xpos firsty secondy yerrdown yerrup
1 0 1 0.1 0.1
2 1 0 1.5 0.4
3 2 1 0.3 0.4
\end{filecontents*}
\begin{document}
\pgfplotstableread{dataTable.txt}\dataTable
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[
ybar stacked
]
% Layers needed to get error bars on top of lower blue rectangle
\addplot table[on layer=axis grid,x=xpos, y=firsty]{\dataTable};
\addplot plot[on layer=axis lines,error bars/.cd, y dir=both, y explicit] table[x=xpos, y=secondy, y error minus=yerrdown, y error plus=yerrup]{\dataTable};
\end{axis}
\end{tikzpicture}
\end{document}