Quiero dibujar un círculo con un radio especificado en las coordenadas de datos. Pero no entiendo eso. Aquí hay un círculo con radio "5", pero el radio de sus coordenadas de datos parece ser solo 0,05. ¿Qué me estoy perdiendo?
\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}
Respuesta1
Siempre debes establecer el compat
nivel cuando uses PGFPlots. Al configurarlo en algo nuevo, el axis cs
interior está predeterminado axis
y el radio de un círculo es el esperado.
\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}
Respuesta2
Esta es solo una respuesta adicional para explicar más el comportamiento dado en la respuesta aceptada (correcta).
pgfplots
tiene una muy buena estructura de compatibilidad con versiones anteriores: cuando el autor cambia algo, o incluso corrige algún error, lo hace bajo un mecanismo de "nivel de compatibilidad".
Por ejemplo, las primeras versiones del paquete tenían una posición muy flexible de los ticks de los ejes. Christian Feuersänger solucionó esto, pero ahora había un problema: todos los dibujos ya hechos en documentos antiguos cambiarían, creando un trabajo inesperado y doloroso para los autores. Por lo tanto, el nuevo comportamiento, incluso si es posiblemente el correcto, debe habilitarse manualmente, en este caso compat=1.3
, lo que dice que no desea compatibilidad con versiones anteriores a esta.
En la versión 1.11, el sistema de coordenadas predeterminado en el entorno del eje se cambió para que el sistema de coordenadas para addplot
y draw
fuera el mismo; antes (como viste) eran diferentes (detalles en el manual finísimo).
Por último, si no utilizas un nivel de compatibilidad, pgfplots
se queja ruidosamente con un aviso... Que nadie leyó jamás ;-)