在 pgfplots 中叠加 xticklabel 和 yticklabel

在 pgfplots 中叠加 xticklabel 和 yticklabel

在下图中,我想将 和 叠加xticklabel $a$yticklabel $f(a)$是否beamer可以叠加刻度标签?

如果不可能的话,我可以将 de 标签放置为节点,但在这种情况下,xticklabesyticklabes中的默认位置是什么pgfplots?谢谢。

\documentclass{beamer}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    axis x line=middle,
    axis y line=middle,
    xtick={1},
    xticklabels={$a$},
    ytick={1},
    yticklabels={$f(a)$}, 
    ]
    \addplot+[domain=0:1.5, mark=none, smooth] {x^2} node[anchor=south] {$f(x)$};
    \coordinate (O) at (0,0);
    \coordinate (A) at (1,1);
    \fill (A) circle (1.2pt);
    \draw[gray, dotted] (A) -- (A|-O);
    \draw[gray, dotted] (A) -- (A-|O);
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

你的情节目前有两个问题:

  • 剪切会删除函数的名称f(x)(并会删除您放置在外面的任何节点)。为了避免这种情况,请添加clip=false到环境选项中axis
  • scoordinate目前是在tikzpicture维度中定义的,而不是在环境的坐标系中定义的axis(0,0)(axis cs:0,0)(1,1)替换(axis cs:1,1)。然后就会出现灰色虚线。

如果我理解正确的话,您希望标签逐帧逐渐出现。我认为这不能直接pgfplots配合使用beamer,因此您需要\node\only命令。

绘图在不同的帧中大小不同,因此会跳跃。因此我们必须明确设置边界框,使其在所有帧中都包含绘图。

以下输出是由以下代码生成的。

在此处输入图片描述在此处输入图片描述在此处输入图片描述

\documentclass{beamer}
\usepackage{pgfplots}
\setbeamertemplate{navigation symbols}{} % Has anyone ever used these to navigate?
\begin{document}
\begin{frame}
\begin{tikzpicture}
  \begin{axis}[
    axis x line=middle,
    axis y line=middle,
    xtick={1},
    xticklabels={},
    ytick={1},
    yticklabels={},
    clip=false
    ]
    \addplot+[domain=0:1.5, mark=none, smooth] {x^2} node[anchor=south] {$f(x)$};
    \coordinate (O) at (axis cs:0,0);
    \coordinate (A) at (axis cs:1,1);
    \fill (A) circle (1.2pt);
    \draw[gray, dotted] (A) -- (A|-O);
    \draw[gray, dotted] (A) -- (A-|O);
    \only<2->{\draw (axis cs:1,-0.03) node[below]{$a$};}
    \only<3->{\draw (axis cs:-0.0164,1) node[left]{$f(a)$};}
  \end{axis}
  \useasboundingbox (-1,-1) rectangle (current axis.above north east);
\end{tikzpicture}
\end{frame}
\end{document}

编辑:这是另一种依赖于pgfplots定位标签的解决方案。只要可以通过宏参数化绘图,它可能比上面的解决方案更好。它仍然需要\useasboundingbox避免绘图跳跃。

\documentclass{beamer}
\usepackage{pgfplots}
\setbeamertemplate{navigation symbols}{} % Has anyone ever used these to navigate?
\begin{document}
\newcommand\xlabel{} % Check whether definable and initialize
\newcommand\ylabel{} % Check whether definable and initialize
\begin{frame}
\only<2->{\renewcommand\xlabel{$a$}}
\only<3->{\renewcommand\ylabel{$f(a)$}}
\begin{tikzpicture}
  \begin{axis}[
    axis x line=middle,
    axis y line=middle,
    xtick={1},
    xticklabels={\xlabel},
    ytick={1},
    yticklabels={\ylabel},
    clip=false
    ]
    \addplot+[domain=0:1.5, mark=none, smooth] {x^2} node[anchor=south] {$f(x)$};
    \coordinate (O) at (axis cs:0,0);
    \coordinate (A) at (axis cs:1,1);
    \fill (A) circle (1.2pt);
    \draw[gray, dotted] (A) -- (A|-O);
    \draw[gray, dotted] (A) -- (A-|O);
  \end{axis}
  \useasboundingbox (-1.3,-1) rectangle (current axis.above north east);
\end{tikzpicture}
\end{frame}
\end{document}

相关内容