使用此示例文档
\documentclass[tikz,12pt]{standalone}
\usepackage{tikz,pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
% error bars/y dir=both,
error bars/y explicit,
]
\addplot[blue,name path=A,smooth] {x^2};
\addplot[red,name path=B,smooth] {x^2+1};
\addplot[gray!50] fill between[of=A and B];
\end{axis}
\end{tikzpicture}
\end{document}
如果我另外添加更多数据并启用,error bars/y dir=both
示例将无法编译。这是一个错误还是我做错了什么?
答案1
这是一个错误。感谢您的报告,我已识别并修复了它;它将成为 pgfplots 1.13 的一部分。
解决方法是绘制路径两次,一次使用name path
和没有 error bars
并且有一次没有 name path
但和 error bars
:
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
error bars/y dir=both,
error bars/y fixed=1,
]
\addplot[blue,smooth] {x^2};
\addplot[red,smooth] {x^2+1};
\addplot[draw=none,error bars/y dir=none,name path=A,smooth] {x^2};
\addplot[draw=none,error bars/y dir=none,name path=B,smooth] {x^2+1};
\addplot[gray!50] fill between[of=A and B];
\end{axis}
\end{tikzpicture}
\end{document}