pgfplots 包,误差线,在添加第二个系列时移动

pgfplots 包,误差线,在添加第二个系列时移动

我遇到了一个问题。当我将第二个系列添加到我的情节中时1,第一个系列的误差线从其原始位置移动2。我使用 pgfplots 包。

阴谋1在此处输入图片描述

阴谋2在此处输入图片描述

提前感谢你的帮助。

下面我附上了代码片段:

\documentclass{elsarticle}

\usepackage{pgfplots}
\usepackage{graphicx}
\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[xlabel={xxxxxxx},
ylabel={xxxxxxx}, ybar, xticklabels={,,},ymin=17,
ymax=21,
xmin=0,
xmax=8,
ystep=1,
ytick={0,1,...,25},
xtick={0,...,8},
axis y line = left, axis x line = bottom]
\addplot+[only marks, error bars/.cd, y dir=both, y explicit]
table[x expr=\coordindex+1,y=exp, y error=err]
{
cfd exp err
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
};
\addplot+[only marks]
table[x expr=\coordindex+1,y=cfd]
{
cfd exp err
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
18 20 1
};
\end{axis}
\end{tikzpicture}
\caption{xxxxxxx}
\end{figure}


\end{document}

答案1

ybar从选项中删除axis。即使未绘制或填充条形,它们也具有宽度(默认为 10pt),并且同一轴上不同图的条形会发生偏移。误差线水平居中于绘制的条形。

\documentclass{elsarticle}

\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}

\begin{figure}
  \centering
  \begin{tikzpicture}
    \begin{axis}[
      xlabel={xxxxxxx},
      ylabel={xxxxxxx},
      %ybar,% <- remove this 
      xticklabels={,,},
      ymin=17,
      ymax=21,
      xmin=0,
      xmax=8,
      ystep=1,
      ytick={0,1,...,25},
      xtick={0,...,8},
      axis y line = left,
      axis x line = bottom
    ]
    \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
      table[x expr=\coordindex+1,y=exp, y error=err]
      {
        cfd exp err
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
    };
    \addplot+[only marks]
      table[x expr=\coordindex+1,y=cfd]
      {
        cfd exp err
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
        18 20 1
    };
    \end{axis}
  \end{tikzpicture}
  \caption{xxxxxxx}
  \end{figure}
\end{document}

在此处输入图片描述

相关内容