我正在尝试在 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}