使用 beamer 和 pgfplots 跳转框架内容

使用 beamer 和 pgfplots 跳转框架内容

我想展示一个函数,它使用不同的值作为它的域,比如“缩小”一系列帧。使用以下代码,绘图前的文本和绘图的轴/帧都会在帧之间跳转:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}

\begin{document}

\begin{frame}
    text

    \begin{center}
        \begin{tikzpicture}
            \begin{axis}[
                    scaled ticks=false,
                    ticklabel style={/pgf/number format/fixed,/pgf/number format/1000 sep={\,}},
                    width=11cm,
                    height=6cm
                ]
                \only<1>{ \addplot [domain=0:5] {x^3}; }
                \only<2>{ \addplot [domain=0:15] {x^3}; }
                \only<3>{ \addplot [domain=0:100] {x^3}; }
                \only<4>{ \addplot [domain=0:1000] {x^3}; }
            \end{axis}
        \end{tikzpicture}
    \end{center}
\end{frame}

\end{document}

请注意,不同的幻灯片实际上应该改变其 x 轴的最大值,即第一张幻灯片应该显示域0:5缩放到图的宽度的函数。我需要这个,因为需要“缩小”效果来显示函数的一些细节,这些细节在较大的域中开始不可见。

避免投影机跳帧建议使用overlayarea,这样我可以避免跳跃文本,但不会对情节内容进行任何改变。

有什么方法可以强制所有addplot命令产生相同的大小,理想情况下图的 (0,0) 点位于所有帧的同一位置?

答案1

这就是overlay-beamer-styles编辑的目的。此外,我喜欢这个[t]选项,虽然在这里没有帮助,但总的来说,它有助于避免在使用时出现跳跃\only。此外,我给 y 刻度设置了固定宽度。(你的图有点太宽了。)

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}

\begin{frame}[t]% <- I prefer [t] to avoid jumps 
    text

   \begin{center}
        \begin{tikzpicture}
            \pgfplotsset{scaled ticks=false,ytick style={text
            width=2cm,align=right},
                    ticklabel style={/pgf/number format/fixed,/pgf/number format/1000 sep={\,}},
                    width=11cm,
                    height=6cm}
            \begin{axis}[visible on=<1>]
                 \addplot [domain=0:5] {x^3}; 
            \end{axis}
            \begin{axis}[visible on=<2>]
                 \addplot [domain=0:15] {x^3}; 
            \end{axis}
            \begin{axis}[visible on=<3>]
                 \addplot [domain=0:100] {x^3}; 
            \end{axis}
            \begin{axis}[visible on=<4>]
                 \addplot [domain=0:1000] {x^3}; 
            \end{axis}

        \end{tikzpicture}
  \end{center}      
\end{frame}

\end{document}

在此处输入图片描述

答案2

这允许通过固定轴大小和边界框来缩小。

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}

\begin{document}

\begin{frame}
    text

    \begin{center}
        \begin{tikzpicture}
            \path (-2.5cm,-1.5cm) (8.5cm,4.5cm);% bounding box
            \begin{axis}[
                    scaled ticks=false,
                    ticklabel style={/pgf/number format/fixed,/pgf/number format/1000 sep={\,}},
                    width=8cm,
                    height=4cm,
                    scale only axis,
                    %enlargelimits=false% not needed after all
                ]
                \only<1>{ \addplot [domain=0:5] {x^3}; }
                \only<2>{ \addplot [domain=0:15] {x^3}; }
                \only<3>{ \addplot [domain=0:100] {x^3}; }
                \only<4>{ \addplot [domain=0:1000] {x^3}; }
            \end{axis}
        \end{tikzpicture}
    \end{center}
\end{frame}

\end{document}

相关内容