Ich möchte einen Kreis mit einem in Datenkoordinaten angegebenen Radius zeichnen. Aber das gelingt mir nicht. Hier ist ein Kreis mit Radius „5“, aber sein Datenkoordinatenradius scheint nur 0,05 zu sein. Was übersehe ich?
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
% pgfplots package manual at https://ctan.org/pkg/pgfplots?lang=en
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-0.7,xmax=0, xlabel={$x$}, xtick={-1,-0.9,...,0}, minor xtick={-1,-0.95,...,0},
ymin=0.3,ymax=1.0, ylabel={$y$}, ytick={0, 0.1,...,1}, minor ytick={0, 0.05,...,1},
samples=500,domain=-1:0,
grid=both,
title={\large shapes on axis}]
\addplot[blue]({x}, {1-x*x} );
\draw (axis cs:-0.4,0.5) circle [radius=5];
\end{axis}
\end{tikzpicture}
\end{document}
Antwort1
Sie sollten compat
bei der Verwendung von PGFPlots immer die Ebene festlegen. Wenn Sie sie auf einen neuen Wert festlegen, axis cs
ist sie im Inneren standardmäßig axis
und der Radius eines Kreises ist wie erwartet.
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-0.7,xmax=0, xlabel={$x$}, xtick={-1,-0.9,...,0}, minor xtick={-1,-0.95,...,0},
ymin=0.3,ymax=1.0, ylabel={$y$}, ytick={0, 0.1,...,1}, minor ytick={0, 0.05,...,1},
samples=500,domain=-1:0,
grid=both,
title={\large shapes on axis}]
\addplot[blue]({x}, {1-x*x} );
\draw (-0.4,0.5) circle [radius=0.05];
\end{axis}
\end{tikzpicture}
\end{document}
Antwort2
Dies ist nur eine zusätzliche Antwort, um das in der (korrekten) akzeptierten Antwort angegebene Verhalten näher zu erläutern.
pgfplots
verfügt über eine sehr schöne Abwärtskompatibilitätsstruktur – wenn der Autor etwas ändert oder sogar einen Fehler behebt, geschieht dies im Rahmen eines „Kompatibilitätsebenen“-Mechanismus.
Beispielsweise war die Positionierung der Achsenmarkierungen in den allerersten Versionen des Pakets sehr locker. Christian Feuersänger hat dies behoben, aber jetzt gab es ein Problem: Alle bereits in alten Dokumenten vorgenommenen Zeichnungen würden sich ändern, was den Autoren schmerzhafte, unerwartete Arbeit bescherte. Daher muss das neue Verhalten, auch wenn es wohl das richtige ist, manuell aktiviert werden, in diesem Fall mit compat=1.3
-, was bedeutet, dass Sie keine Kompatibilität mit früheren Versionen wünschen.
In Version 1.11 wurde das Standardkoordinatensystem in der Achsenumgebung so geändert, dass die Koordinatensysteme für addplot
und draw
gleich waren; vorher (wie Sie gesehen haben) waren sie unterschiedlich (Details im sehr ausführlichen Handbuch).
Und schließlich, wenn Sie keine Kompatibilitätsstufe verwenden, pgfplots
beschwert sich das lautstark mit einer Warnung... Die niemand jemals gelesen hat ;-)