
soy un nuevo usuario dePGFPlotacionesentonces tengo la siguiente pregunta: dibujo una elipse en TikZ y quiero agregarle una leyenda. Sin embargo, encontré que \addlegendentry
es solo para \addplot
. Entonces, ¿cómo puedo agregar una leyenda para mi curva?
\tikzsetnextfilename{1a}
\begin{tikzpicture}
\begin{axis}[
xlabel = $\dfrac{M}{M_{bend}}$,
ylabel = $\dfrac{P}{P_{burst}}$,
xmin=0,xmax=1.2,
ymin=0,ymax=1.2,
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
label style={font=\tiny},
tick label style={font=\tiny},
legend style={font=\small},
legend cell align=left,
legend pos=north east
]
\addplot+[color=red,
line width=0.3mm]
(axis cs:0,0)
ellipse [
x radius=0.950052, y radius=0.945021];
\addlegendentry{Analytical results}
\end{axis}
\end{tikzpicture}
Leí sobre la leyenda personalizada de Personalizar la posición de la leyenda en el entorno del eje PGFplots, pero no tengo idea de cómo poner esto en un entorno de eje.
Respuesta1
Puede utilizar \addlegendimage
para agregar una leyenda para un \draw
comando. El argumento de \addlegendimage
son los mismos parámetros de estilo utilizados en draw
, por ejemplo red,line width=0.3mm
. Sin embargo , el problema de usarlo \draw
así es que la escala es incorrecta, ya que no usa el sistema de coordenadas del axis
.
Otra opción aquí es trazar la elipse con addplot
, lo que da el tamaño correcto.
\documentclass[tikz,border=5mm]{standalone}
\usepackage{pgfplots,amsmath}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel = $\dfrac{M}{M_{\mathrm{bend}}}$,
ylabel = $\dfrac{P}{P_{\mathrm{burst}}}$,
xmin=0,xmax=1.2,
ymin=0,ymax=1.2,
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
label style={font=\tiny},
tick label style={font=\tiny},
legend style={font=\small},
legend cell align=left,
legend pos=north east
]
\draw[color=red,
line width=0.3mm]
(axis cs:0.6,0.6) % moved to middle of plot to make it more visible
ellipse [
x radius=0.950052, y radius=0.945021];
\addlegendimage{line width=0.3mm,color=red}
\addlegendentry{Analytical results}
\addplot [variable=\t,samples=200,domain=0:360] ({0.950052*cos(t)},{0.945021*sin(t)});
\addlegendentry{Parametric analytic}
\end{axis}
\end{tikzpicture}
\end{document}