TikZ/Pgfplots-将误差线限制在域内

TikZ/Pgfplots-将误差线限制在域内

我想创建一个带有误差线的图,其中 y 被限制在给定的域内。不幸的是,restrict y to domain似乎不适用于误差线。

\documentclass{article}
\usepackage{pgfplots}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled ticks=false,
width = 0.9\linewidth,
height = 0.5562\linewidth,
xlabel={\footnotesize Testinstanzen},
ylabel={\footnotesize relative Abweichung},
xtick=\empty,
yticklabel={\footnotesize ~\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}\%}
]

\addplot+[only marks,
color = blue,
mark = *,
mark options={fill=blue},
mark size = 1.5,
error bars/.cd,
error bar style={color=blue},
y dir = both,
y explicit,
x dir = none]
table[x index={0},y index={1}, y error plus index ={2}, y error minus index ={3}]plots/data/data.dat};  
\end{axis}
\end{tikzpicture}
\end{document}

此代码创建以下图表:

y 不受限制的图

我想将 y 限制在 0% 到 1% 之间,这样误差线更容易识别。第四个点处的长误差线应该结束于图的最顶部,以表明相应值甚至高于 1%。

非常感谢您的帮助!

示例数据文件“data.dat”:

0   0.0274  0.0775  0.0274
1   0.0275  0.0386  0.0271
2   0.0274  0.0407  0.0274
3   0.0260  0.0570  0.0247
4   0.0297  0.0560  0.0248
5   0.0465  0.1102  0.0405
6   0.0371  0.0808  0.0371
7   0.0381  0.0471  0.0337
8   0.0267  0.0387  0.0234
9   0.0247  0.0274  0.0247

答案1

此限制目前不适用于误差线。这是 pgfplots 中的一个错误或功能请求。

到目前为止,唯一的解决方法是@Jake建议的解决方法:设置ymax=0.15。除非误差线值比数据点的标准比例高出几个数量级,否则它应该可以合理地工作。

相关内容