如何分组误差线

如何分组误差线

我想使用 pgfplots 重现此图。我可以生成带有误差线的条形图。但是,如果我仅指定标记,则误差线会共享相同的 xtick 标签重叠。

enter image description here

答案1

我也找不到一种方法来让这个方法适用于条形图。但这里有一个不使用条形图的解决方案。它使用一个x expr={\thisrow{x}+dx}小数dx,将其添加到 x 值以移动它。这样,误差线就可以像条形图一样分组。缺点:你必须手动以这种方式移动每个图。

enter image description here

\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\pgfplotsset{
  error bars/.cd,
    x dir=none,
    y dir=both, y explicit,
}
\begin{axis}[
    width=10cm,
    height=5cm,
    only marks,
    tick pos=lower,
    tick align=outside,
    xtick={0,1,2,3,4},
    xticklabels={A,B,C,D,E},
    y tick label style={rotate=90},
    xlabel=method,
    ylabel=error,
  ]
  \addplot+ [mark=*] table [x expr={\thisrow{x}-0.1}, y=y, y error=ey] {
    x y ey
    0 0.3 0.04
    1 0.2 0.03
    2 0.4 0.04
    3 0.1 0.02
    4 0.2 0.03
  };
  \addplot+ [mark=*] table [x expr={\thisrow{x}+0.1}, y=y, y error=ey] {
    x y ey
    0 0.4 0.05
    1 0.3 0.02
    2 0.4 0.03
    3 0.2 0.04
    4 0.3 0.04
  };
\end{axis}
\end{tikzpicture}
\end{document}

相关内容