使用下一个代码
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines = middle,
xmin=-1, xmax=3, ymin=-1, ymax=7,
axis equal,
xlabel = {$x$},
ylabel = {$y$},
yticklabels={0,...,5},
grid=both,
]
\draw (axis cs: 1,4) circle [radius=sqrt(3)];
\draw (1,4) node[circle,draw,inner sep=1pt,label=below:$\C_C$](z0) {};
\draw[-stealth] (z0) -- (2.4,3) node[midway,above]{$\space\sqrt3$};
\end{axis}
\end{tikzpicture}
\end{document}
但是当我尝试使用 beamer 类在框架内的列内构建相同的图片时,无法使用 pdflatex 进行编译
\documentclass{beamer}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{frame}\frametitle{Title}
\begin{tikzpicture}
\begin{axis}[
axis lines = middle,
xmin=-1, xmax=3, ymin=-1, ymax=7,
axis equal,
xlabel = {$x$},
ylabel = {$y$},
yticklabels={0,...,5},
grid=both,
]
%\draw[step=1cm,gray,very thin] grid ;
\draw (axis cs: 1,4) circle [radius=sqrt(3)];
\draw (1,4) node[circle,draw,inner sep=1pt,label=below:$\C_C$](z0) {};
\draw[-stealth] (z0) -- (2.4,3) node[midway,above]{$\space\sqrt3$};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}
这给我带来了两个问题,一个是找出阻碍编译的原因,另一个是圆应该位于中心,(1,3)
但是当使用此坐标时,图片的中心出现在,(1,2)
因此必须使用进行补偿\draw (axis cs: 1,4)
。我在编译和分配坐标的代码中缺少什么?
更新
正如 abcdefg 所指出的,\C 中有一个未定义的序列,之后它编译为
但中心被转移了,应该使用
\draw (1,3) node[circle,draw,inner sep=1pt,label=below:$C$](z0) {};
和
yticklabels={0,1,2,3,4,5},
yticklabels={$\pgfmathprintnumber\tick$},
更新2
嗯,中心就在应该在的位置,但箭头不是从中心开始的,据我所知,它定义了从中开始z0
并到的线(2.4,3)
。因此,可以通过以下方式明确完成
\draw[-stealth] (1,3) -- (2.4,3) node[midway,above]{$\space\sqrt3$};
但即便如此,它似乎也不起作用。
答案1
也许您正在寻找这种类型的东西(也许用\pgfplotsset{compat=1.14}
而不是\pgfplotsset{compat=1.17}
)。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{frame}
\frametitle{Title}
\begin{tikzpicture}
\begin{axis}[
axis lines = middle,
xmin=-1, xmax=3, ymin=-1, ymax=7,
axis equal,
xlabel = {$x$},
ylabel = {$y$},
yticklabel={$\pgfmathprintnumber\tick$},
grid=both,
]
%\draw[step=1cm,gray,very thin] grid ;
\draw (1,3) node[circle,draw,inner sep=1pt,label=below:{$C$}] (c0){}
circle [radius={sqrt(3)}];
\draw[-stealth] (c0) to[edge label={$\sqrt{3}$}] ++
(axis direction cs:{sqrt(3)*cos(-45)},{sqrt(3)*sin(-45)}) ;
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}