使用 tikz、beamer 和 pgfplots 绘制圆圈问题

使用 tikz、beamer 和 pgfplots 绘制圆圈问题

我试图画一个这样的圆圈 在此处输入图片描述

使用下一个代码

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

在此处输入图片描述

相关内容