对于小于 ymax 或 xmax 的数据,禁用 tikz 中轴的拉伸效果

对于小于 ymax 或 xmax 的数据,禁用 tikz 中轴的拉伸效果

请考虑以下示例:

\documentclass{article}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=newest}
\usepackage{animate}
\pgfmathdeclarefunction{normal}{2}{%
  \pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{document}
\begin{figure}[ht]
\begin{center}
\begin{animateinline}[controls,palindrome]{5}
  \multiframe{15}{ik=1+1}{
\begin{tikzpicture}
\begin{axis}[
      hide y axis,
      axis lines*=center, 
      axis on top,
      no markers, 
      domain=0:25, 
      samples=100,
      xlabel=\empty, 
      ylabel=\empty,
      every axis x label/.style={at=(current axis.right of origin),anchor=west},
      every axis y label/.style={at=(current axis.above origin),anchor=south},
      xmin = 0, xmax = 25,
      ymin = 0, ymax = 1,
      xtick=, ytick=data,
      enlargelimits=false, 
      clip=false
  ]
  \addplot [very thick,cyan!90,draw opacity=.6*(1-\ik/7.5)*(1-\ik/7.5)] {normal((12-4.75*\ik/15),(4-3.75*\ik/15))/(\ik/3.75)};
\end{axis}
\end{tikzpicture}
}
\end{animateinline}
\end{center}
\end{figure}
\end{document}

如您所见,在动画过程中轴会拉伸。我想修复轴(和图形)以使用设置的坐标系而不偏离它。因此它将显示例如 x=[0,4] 和 y=[0,4] 的范围,而不管曲线的间隔如何(在这种情况下,曲线在 y 方向上的高度可变,导致轴拉伸以进行补偿)。或者,fix axes to set coordinate system我正在寻找一个键或其他东西。

答案1

发生这种情况是因为您隐藏了轴。 您可以通过在 之前y添加虚拟节点来更正边界框。\node (dummy) at (rel axis cs:0,1) {};\end{axis}

相关内容