我遇到了一个问题。当我将第二个系列添加到我的情节中时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}