Ich habe versucht, die Lösung zu verbessern beiLinien in einem Diagramm zeichnen und ihnen eine Beschriftung geben?indem Sie Jakes Antwort verwenden unterSo greifen Sie innerhalb der Achsenumgebung von PGFplots auf \xmin, \xmax, \ymin, \ymax zu. Jakes Antwort ergibt also die braune gepunktete Linie (die x-Achse) mit
(current axis.left of origin) -- (current axis.right of origin)
Ich dachte, eine einfache Verwendung tikz
der calc
Bibliothek von würde es mir ermöglichen, die vertikale Position der horizontalen Linie anzupassen. Wenn ich y=12
zum Beispiel eine horizontale Linie bei haben möchte, verwende ich einfach
($(current axis.left of origin)+(axis cs: 0,12)$) -- ($(current axis.right of origin)+(axis cs: 0,12)$)
wo ich a angewendet habe + (axis cs: 0,12)
und dasselbe für die andere Koordinate.
Nun, das ist in der Theorie großartig, funktioniert aber nicht. Stattdessen wird die gestrichelte Linie in Rot erzeugt (die nur die Hälfte der gewünschten Linie ist):
Anmerkungen:
- Anstatt Koordinatenberechnungen durchzuführen, habe ich auch versucht,
shift={(axis cs: 0,12)}
die Option anzuwenden, aber das hatte keine Auswirkungen auf die Ausgabe.
Code:
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {x*x};
\draw [ultra thick, dotted, draw=brown]
(current axis.left of origin) --
(current axis.right of origin);
\draw [ultra thick, dashed, draw=red]
($(current axis.left of origin) +(axis cs: 0,12)$) --
($(current axis.right of origin)+(axis cs: 0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}
Antwort1
Ich weiß wirklich nicht warum, aber das funktioniert bei mir
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {x*x};
\draw [ultra thick, dotted, draw=brown]
(current axis.left of origin) --
(current axis.right of origin);
\draw [ultra thick, draw=red]
($(current axis.left of origin)-(axis cs:0,-12)$) --
($(current axis.right of origin)+(axis cs:0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}