
Ich habe Fehlerbalken, die 95 %-Konfidenzintervalle in einem logarithmischen Diagramm darstellen. Einige der Fehlerbalken reichen bis zu negativen Zahlen, für die der Logarithmus nicht definiert ist, daher lässt pgfplots den Balken einfach ganz weg. Gibt es eine Möglichkeit, stattdessen z. B. eine gestrichelte Linie darzustellen, die bis zur Achse reicht?
\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}
Antwort1
Bedauerlicherweisepgfplotslöscht die außerhalb des Bereichs liegenden Koordinaten automatisch, bevor es das Zeichenschema ( /pgfplots/error bars/draw error bar/
) aufruft. Es besteht (fast) keine Chance, dasspgfplotswerde das Zeichnen dieses Teils des Fehlerbalken überdenken.
Sie können den Fehlerbalken dennoch hervorheben, indem Sie ein zweites Diagramm mit einer übertriebenen Markierung erstellen. Beachten Sie Folgendes:
\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}