Pgfplots-Beschriftungen springen zwischen Beamer-Folien

Pgfplots-Beschriftungen springen zwischen Beamer-Folien

Unten sehen Sie ein MWE, das mein Problem veranschaulicht. Das Problem besteht darin, wie sich die Beschriftungen durch jede Folie bewegen. Es scheint, als ob sie zuerst rechtsbündig ausgerichtet und dann für die nächste Folie zentriert werden. Wie kann ich jede Beschriftung auf jeder Folie unter dem Häkchen zentrieren, damit sich das Diagramm nicht zwischen den Folien bewegt?

\documentclass{beamer}

\usepackage{pgfplots}

\begin{document}


\begin{frame}{Minimal Example}

\begin{tikzpicture} 
    \begin{axis}[
        font=\tiny,
        % enlarge y limits={value=0.2,upper},
        % scaled ticks=false, 
        xticklabels={,
        \only<4>{\phantom{$\mu-3\sigma$}}   \only<4->{$\mu-3\sigma$},
        \only<3>{\phantom{$\mu-2\sigma$}}   \only<3->{$\mu-2\sigma$},
        \only<2>{\phantom{$\mu-\sigma$}}    \only<2->{$\mu-\sigma$},
        $\mu$,
        \only<2>{\phantom{$\mu+\sigma$}}    \only<2->{$\mu+\sigma$},
        \only<3>{\phantom{$\mu+2\sigma$}}   \only<3->{$\mu+2\sigma$},
        \only<4>{\phantom{$\mu+3\sigma$}}   \only<4->{$\mu+3\sigma$},
        },
        yticklabels={,},
        ]
\addplot[blue]  coordinates {(0,0) (0,1) (6,1) (6,0)};
\addplot[red]   coordinates {(1,0) (1,2) (5,2) (5,0)};
\addplot[green] coordinates {(2,0) (2,3) (4,3) (4,0)};

\end{axis} 
\end{tikzpicture}

\end{frame}

\end{document}

Die Konstruktion der Anzeige von Beschriftungen zwischen Folien habe ich übernommen von diesemLösung.

Antwort1

Anstatt die Phantome auf aufeinanderfolgenden Folien zu platzieren, können Sie sie alle nur auf der ersten Folie platzieren und dann die nachfolgenden Beschriftungen auf den nächsten Folien aufdecken. Folgendes sollte funktionieren:

\documentclass{beamer}

\usepackage{pgfplots}

\begin{document}


\begin{frame}{Minimal Example}

\begin{tikzpicture} 
    \begin{axis}[
        font=\tiny,
        % enlarge y limits={value=0.2,upper},
        % scaled ticks=false, 
        xticklabels={,
        \only<1>{\phantom{$\mu-3\sigma$}}   \only<4->{$\mu-3\sigma$},
        \only<1>{\phantom{$\mu-2\sigma$}}   \only<3->{$\mu-2\sigma$},
        \only<1>{\phantom{$\mu-\sigma$}}    \only<2->{$\mu-\sigma$},
        $\mu$,
        \only<1>{\phantom{$\mu+\sigma$}}    \only<2->{$\mu+\sigma$},
        \only<1>{\phantom{$\mu+2\sigma$}}   \only<3->{$\mu+2\sigma$},
        \only<1>{\phantom{$\mu+3\sigma$}}   \only<4->{$\mu+3\sigma$},
        },
        yticklabels={,},
        ]
\addplot[blue]  coordinates {(0,0) (0,1) (6,1) (6,0)};
\addplot[red]   coordinates {(1,0) (1,2) (5,2) (5,0)};
\addplot[green] coordinates {(2,0) (2,3) (4,3) (4,0)};

\end{axis} 
\end{tikzpicture}

\end{frame}

\end{document}

Antwort2

Um das ganze Hin und Her zu stoppen, können Sie das Diagramm einfach in eine overlayareaUmgebung einschließen. Mit dem zweiten Argument können Sie die vertikale Positionierung steuern. So:

\documentclass{beamer}

\usepackage{pgfplots}

\begin{document}
\begin{frame}{Minimal Example}
\begin{overlayarea}{\textwidth}{.7\textheight}
\begin{tikzpicture}
    \begin{axis}[
        font=\tiny,
        xticklabel style={text depth=0pt},
        % enlarge y limits={value=0.2,upper},
        % scaled ticks=false,
        xticklabels={,
        \only<4->{$\mu-3\sigma$},
        \only<3->{$\mu-2\sigma$},
        \only<2->{$\mu x-\sigma$},
        $\mu$,
        \only<2->{$\mu+\sigma$},
        \only<3->{$\mu+2\sigma$},
        \only<4->{$\mu+3\sigma$},
        },
        yticklabels={,},
        ]
\addplot[blue]  coordinates {(0,0) (0,1) (6,1) (6,0)};
\addplot[red]   coordinates {(1,0) (1,2) (5,2) (5,0)};
\addplot[green] coordinates {(2,0) (2,3) (4,3) (4,0)};

\end{axis}
\end{tikzpicture}
\end{overlayarea}
\end{frame}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen