Добавить легенду к кривой из \draw

Добавить легенду к кривой из \draw

Я новый пользовательPGFPlotsпоэтому у меня следующий вопрос: я рисую эллипс в TikZ и хочу добавить для него легенду. Однако я обнаружил, что \addlegendentryесть только для \addplot. Тогда как мне добавить легенду для моей кривой?

\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}

Я прочитал о кастомизированной легенде из Настройте положение легенды в среде осей PGFplots, но я понятия не имею, как это реализовать в среде оси.

решение1

Вы можете использовать \addlegendimageдля добавления легенды для \drawкоманды. Аргументом к \addlegendimageявляются те же параметры стиля, которые используются в draw, например red,line width=0.3mm. Проблема с использованием \drawв этом случае заключается в том, что масштаб неверен, так как он не использует систему координат axis.

Другой вариант — построить эллипс с помощью addplot, что даст правильный размер.

\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}

введите описание изображения здесь

Связанный контент