beamer
我想使用和的组合一次揭露两个图pgfplots
。下面的 MWE 突出显示了三次尝试。
- 第一次尝试使用
\onslide
但是好像没有什么明显的效果,直接显示最后的画面。 - 第二次尝试使用了
\only
哪种工作,但由于第二个图未考虑在第一个图的创建范围内,因此我们得到了某种跳跃。 - 下列的此解决方案我找到了风格的想法
visible on
。这看起来很有希望,但它从已经存在的填充开始。此外,它有四张幻灯片 - 我不明白为什么。
所以我的问题是:如何从一个空轴开始并一步一步地显示两个图形及其各自的填充。
\documentclass{beamer}
\usepackage{pgfplots}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt={#1{}{invisible}}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
},
}
\begin{document}
\begin{frame}{Attempt 1}
\begin{tikzpicture}
\begin{axis}
\onslide<+->{\addplot[black, fill=red, fill opacity=0.2]{-x+3}\closedcycle;}
\onslide<+->{\addplot[black, fill=red, fill opacity=0.2]{x}\closedcycle;}
\end{axis}
\end{tikzpicture}%
\end{frame}
\begin{frame}{Attempt 2}
\begin{tikzpicture}
\begin{axis}
\only<+->{\addplot[black, fill=red, fill opacity=0.2]{-x+3}\closedcycle;}
\only<+->{\addplot[black, fill=red, fill opacity=0.2]{x}\closedcycle;}
\end{axis}
\end{tikzpicture}%
\end{frame}
\begin{frame}{Attempt 3}
\begin{tikzpicture}
\begin{axis}
\addplot[visible on=<+->, black, fill=red, fill opacity=0.2]{-x+3}\closedcycle;
\addplot[visible on=<+->, black, fill=red, fill opacity=0.2]{x}\closedcycle;
\end{axis}
\end{tikzpicture}%
\end{frame}
\end{document}
答案1
你的第三次尝试成功了,如果你把visible on=<+->
后选项fill opacity
。原因是,在您的 MWE 中,visible on
集合的定义opacity=0
,但这被覆盖fill opacity=0.2
,后者是稍后出现的。这就是为什么填充已经存在,而边界线却不存在的原因。
平均能量损失
\documentclass{beamer}
\usepackage{pgfplots}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt={#1{}{invisible}}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
},
}
\begin{document}
\begin{frame}{Attempt 3}
\begin{tikzpicture}
\begin{axis}
\addplot[black, fill=red, fill opacity=0.2,visible on=<+->]{-x+3}\closedcycle;
\addplot[black, fill=red, fill opacity=0.2,visible on=<+->]{x}\closedcycle;
\end{axis}
\end{tikzpicture}%
\end{frame}
\end{document}
输出
答案2
以下是使用您的方法对两个图进行控制和\only
控制的一种可能性:domain
ymin
\documentclass{beamer}
\usepackage{pgfplots}
\begin{document}
\begin{frame}{Attempt 1}
\begin{tikzpicture}
\begin{axis}[ymin=-6]
\only<+->{\addplot[black, fill=red, fill opacity=0.2,domain=-5:5]{-x+3}\closedcycle;}
\only<+->{\addplot[black, fill=red, fill opacity=0.2,domain=-5:5]{x}\closedcycle;}
\end{axis}
\end{tikzpicture}%
\end{frame}
\end{document}
结果: