如何使用 pgfplots 在对数图中显示负误差线?

如何使用 pgfplots 在对数图中显示负误差线?

我在对数图中用误差线表示 95% 置信区间。有些误差线延伸到对数未定义的负数,因此 pgfplots 会直接删除该误差线。有没有办法让它绘制一条一直延伸到轴的虚线?

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{semilogyaxis}
\addplot [error bars/.cd, y dir=both, y explicit] coordinates {
    (1, 10) +- (0, 1)
    (2, 10) +- (0, 10)
    (3, 10) +- (0, 1)
};
\end{semilogyaxis}
\end{tikzpicture}
\end{document}

答案1

很遗憾在调用绘图方案 ( ) 之前自动删除超出范围的坐标/pgfplots/error bars/draw error bar/。几乎不可能将重新考虑绘制误差线的那部分。

尽管如此,你仍然可以通过制作第二个带有夸张标记的图来强调误差线。考虑以下内容:

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14} 

\begin{document}


\begin{tikzpicture}
\begin{semilogyaxis}
\addplot [error bars/.cd, y dir=both, y explicit] coordinates {
    (1, 9) +- (0, 1)   % good point
    (2, 11) += (0, 10) % bad point
    (3, 10) +- (0, 1)  % good poiny
    (4, 12) -= (0,3)   % bad point
};
\addplot [only marks,mark=.,error bars/.cd, y dir=both, y explicit relative,error mark=triangle*, error mark options={rotate=-90,scale=4}] coordinates {
    % good point has nothing to do
    (2, 11) -= (0,.5) % bad point
    % good point has nothing to do
    (4, 12) += (0,.5) % bad point
};
\end{semilogyaxis}
\end{tikzpicture}
\end{document}

相关内容