python-步骤的Matplotlib动画
作者:互联网
我创建了一个Stepp函数的Matplotlib动画.我正在使用以下代码…
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.step([], [])
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 2, 10)
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
它模糊地类似于我想要的(类似于下面的gif),但不是恒定的值和随时间滚动的每一步都是动态的,并且上下移动.如何更改我的代码以实现这一转变?
解决方法:
step明确在输入数据点之间绘制步骤.它永远无法绘制出部分“步骤”.
您想要一个介于两者之间的“部分步骤”动画.
而不是使用ax.step,而使用ax.plot,而是通过绘制y = y-y%step_size来制作阶梯式序列.
换句话说,类似:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000) # Using a series of 1000 points...
y = np.sin(x)
# Make *y* increment in steps of 0.3
y -= y % 0.3
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
注意开头和结尾的部分“步骤”
将其整合到您的动画示例中,我们将获得类似于以下内容的信息:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [])
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 2, 1000)
y = np.sin(2 * np.pi * (x - 0.01 * i))
y -= y % 0.3
line.set_data(x, y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
标签:matplotlib,animation,trigonometry,python 来源: https://codeday.me/bug/20191028/1951790.html