叠加条形图来制作不对称误差线?

叠加条形图来制作不对称误差线?

为了说明问题,我使用了此链接答案中的代码来表示 pgfplots 中的不对称误差线。

\documentclass{article} 
\usepackage{pgfplots}
\usepackage{pgfplotstable}

\pgfplotstableread{
x         y    y-max  y-min
Lighting  0.12 0.31   0.03
Computers 0.06 0.12   0.01 
Total     0.07 0.14   0.02
}{\mytable}

\begin{document}    
\begin{tikzpicture}[scale=1.3] 
\begin{axis} [symbolic x coords={Lighting,Computers,Total},xtick=data]
\addplot+[forget plot,only marks] 
  plot[error bars/.cd, y dir=plus, y explicit]
  table[x=x,y=y,y error expr=\thisrow{y-max}] {\mytable};
\addplot+[only marks,xticklabels=\empty] 
  plot[error bars/.cd, y dir=minus, y explicit]
  table[x=x,y=y,y error expr=\thisrow{y-min}] {\mytable};
\end{axis} 
\end{tikzpicture}

\end{document}

我需要一张带有不对称误差线的条形图用于演示。是否可以叠加两个误差线图来绘制误差线?如何操作?

答案1

从 PGFPlots 1.9 开始,直接支持非对称误差线,因此您只需使用一个\addplot [ybar]命令即可:

\documentclass{article} 
\usepackage{pgfplots}

\pgfplotstableread{
x         y    y-max  y-min
Lighting  0.12 0.31   0.03
Computers 0.06 0.12   0.01 
Total     0.07 0.14   0.02
}{\mytable}

\begin{document}    
\begin{tikzpicture}
\begin{axis} [
    ymin=0,
    symbolic x coords={Lighting,Computers,Total},
    xtick=data
]
\addplot [ybar, fill=gray!50] 
  plot [error bars/.cd, y dir=both, y explicit]
  table [y error plus=y-max, y error minus=y-min] {\mytable};
\end{axis} 
\end{tikzpicture}

\end{document}

相关内容