Ich bin gerade dabei, mit LaTeX zu plotten. Ich habe es geschafft, mein Balkendiagramm zu plotten. Ich habe zwei Wertegruppen, für die ich den Durchschnitt anzeigen möchte. Ich möchte einen horizontalen Balken über das Balkendiagramm legen und ihn die Durchschnittswerte anzeigen lassen. Das Zeichnen ist leider nicht an Skalierung oder Ähnliches gekoppelt. Sobald ich etwas an der Skalierung/Beschriftung ändern muss, ist alles nicht mehr an seinem Platz. Gibt es eine bewährte Methode zum Zeichnen von Linien (oder Pfeilen), die den Datenwerten des zugrunde liegenden Diagramms entsprechen?
Antwort1
Ich gehe davon aus, dass Sie Probleme haben, ein tikz
\draw
in einer \pgfplot
Umgebung von zu verwenden axis
. In diesem Fall müssen Sie das axis cs
Koordinatensystem verwenden, wie die gepunktete rote Linie zeigt:
Anmerkungen:
- Um dieser Zeile eine Beschriftung hinzuzufügen, können Sie
node
als Teil der Zeichnung ein verwenden. - Die Positionierung des Etiketts ist abgedeckt beiVerschieben einer Beschriftung entlang des Pfads.
- Dank Jakes Antwort unterVerschiebung anwenden auf (aktuelle Achse.links vom Ursprung)sollte der zweite MWE unten funktionieren, ohne dass die Angabe der Mindest- und Höchstwerte erforderlich ist
x
. In der Definition muss nur dery
Wert angegeben werden\VerticalPos
.
Code: Geben Sie sowohl minimale als auch maximale x-Werte an
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {x*x};
\draw [ultra thick, dotted, draw=red]
(axis cs: -6,12) -- (axis cs: 6,12)
node[pos=0.5, above] {$y=12$};
\end{axis}
\end{tikzpicture}
\end{document}
Code: Minimale und maximale x-Werte automatisch bestimmen
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {x*x};
\newcommand*{\VerticalPos}{12}% Desired vertical postion
\coordinate (Left) at ($(current axis.left of origin) +(axis direction cs: 0,\VerticalPos)$);
\coordinate (Right) at ($(current axis.right of origin)+(axis direction cs: 0,\VerticalPos)$);
\draw [ultra thick, dotted, draw=red]
(Left) -- (Right)
node[pos=0.5, above] {$y=\VerticalPos$};
\end{axis}
\end{tikzpicture}
\end{document}