我使用 pgfplots 为 beamer 演示文稿生成图形。图形放置在连续的幻灯片上。
效果很好,但图片位置在幻灯片之间略有移动,看起来不太专业。这是因为xticklabels
在我的例子中,图片会上下移动。
有没有办法强制图形区域位于每张投影仪幻灯片上的相同位置?也许可以在图形区域周围添加边距?
我使用了创建两个重叠轴的解决方法,其中一个轴的不透明度为 0 来固定位置,但这不是一个优雅的方法。
这是一个简单的例子:
\documentclass{beamer}
\usepackage{pgfplots}
\setbeamertemplate{navigation symbols}{}
\begin{document}
\begin{frame}{Slide 1}
\begin{tikzpicture}[trim axis left, trim axis right]
\begin{axis}
\addplot coordinates {(0,1) (1,1)};
\end{axis}
\end{tikzpicture}
\end{frame}
\begin{frame}{Slide 2}
\begin{tikzpicture}[trim axis left, trim axis right]
\begin{axis}
\addplot coordinates {(0,1) (1,2)};
\end{axis}
\end{tikzpicture}
\end{frame}
\begin{frame}{Slide 3}
\begin{tikzpicture}[trim axis left, trim axis right]
\begin{axis}
\addplot coordinates {(0,1) (1,3)};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}
答案1
您可以定义一个新键trim axis
,将 的边界框设置为绘图区域的范围。请注意,如果您在单个 中tikzpicture
有多个不同的环境,则此简单方法将不起作用。axis
tikzpicture
\tikzset{
trim axis/.style={
execute at end picture={
\pgfresetboundingbox
\path (current axis.north west) (current axis.south east);
}
}
}
\documentclass{beamer}
\usepackage{pgfplots}
\setbeamertemplate{navigation symbols}{}
\begin{document}
\tikzset{
trim axis/.style={
execute at end picture={
\pgfresetboundingbox
\path (current axis.north west) (current axis.south east);
}
}
}
\begin{frame}{Slide 1}
\begin{tikzpicture}[trim axis]
\begin{axis}
\addplot coordinates {(0,1) (1,1)};
\end{axis}
\end{tikzpicture}
\end{frame}
\begin{frame}{Slide 2}
\begin{tikzpicture}[trim axis]
\begin{axis}
\addplot coordinates {(0,1) (1,2)};
\end{axis}
\end{tikzpicture}
\end{frame}
\begin{frame}{Slide 3}
\begin{tikzpicture}[trim axis]
\begin{axis}
\addplot coordinates {(0,1) (1,3)};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}