pgfplots 中带有中心标记和图例标签的圆圈

pgfplots 中带有中心标记和图例标签的圆圈

我正在尝试在 pgf 图中绘制一个圆圈,其中心有一个 + 号。现在我有以下代码:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
    \begin{tikzpicture}

        \begin{axis}[enlargelimits,
            xmin=-2,xmax=1,
            ymin=-1,ymax=1,
            grid=major,
        ]
            \draw [blue] (-1,0) circle [radius=1];
            % \label{l:circle}
            
            \addplot [only marks, mark=+, thick, forget plot] coordinates { (-1,0) };
        \end{axis}
    
    \end{tikzpicture}
\end{document}

哪种方法有效,尽管我不确定使用addplot作为中心标记是否是个好主意,但仅使用 tikz 绘制“+”标记似乎过于复杂。然而更重要的是,我无法使用 引用圆线,\ref{l:circle}因为圆不是使用 创建的addplot。如何解决这个问题?


我认为图例标签问题可以通过使用圆形的参数图来解决,addplot就像在 pgfplot 示例库中一样:

\documentclass[a4paper]{report}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

    \begin{figure}
        \centering
        \begin{tikzpicture}

            \begin{axis}[enlargelimits,
                xmin=-2,xmax=0,
                ymin=-1,ymax=1,
                grid=major,
            ]
                \draw [blue] (-1,0) circle [radius=1];
                % \label{l:circle}
                \addplot[samples=100, domain=0:2*pi, red] ({0.5*cos(deg(x)) - 1}, {0.5*sin(deg(x))});
                \label{l:small_circle}
                
                \addplot [only marks, mark=+, thick, forget plot] coordinates { (-1,0) };
                \label{l:center_mark}
            \end{axis}
        \end{tikzpicture}
        \caption{I can reference (\ref{l:center_mark}) and (\ref{l:small_circle}) but not the blue circle.}
    \end{figure}
\end{document}

演示

我仍然想知道添加中心标记的更简洁的方法。

答案1

标签和引用pgfplot需要\addplot命令。只需在后面添加tikz路径操作即可\addplot

\addplot [forget plot, blue] (-1,0) circle [radius=1];
\label{l:circle}

完整示例:

\documentclass[a4paper]{report}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

    \begin{figure}
        \centering
        \begin{tikzpicture}

            \begin{axis}[enlargelimits,
                xmin=-2,xmax=0,
                ymin=-1,ymax=1,
                grid=major,
                ]

                \addplot [forget plot, blue] (-1,0) circle [radius=1];
                \label{l:circle}

                \addplot[samples=100, domain=0:2*pi, red] ({0.5*cos(deg(x)) - 1}, {0.5*sin(deg(x))});
                \label{l:small_circle}

                \addplot [only marks, mark=+, thick, forget plot] coordinates { (-1,0) };
                \label{l:center_mark}
            \end{axis}
        \end{tikzpicture}
        \caption{I can reference (\ref{l:center_mark}) and
          (\ref{l:small_circle}) and the blue circle (\ref{l:circle}).}
    \end{figure}
\end{document}

参考蓝色圆圈

相关内容