Python动画图
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16132798/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Python animation graph
提问by Tasos
I have a project to create few graph animations. I will have a directed weighted graph and on each step, I will change few things on this. I want to make those changes with animation. So, my question is this:
我有一个项目来创建几个图形动画。我将有一个有向加权图,在每一步中,我都会对此进行一些更改。我想通过动画进行这些更改。所以,我的问题是:
Is it possible to use python to make animations, and , if so, how would you make a simple animation?
是否可以使用python制作动画,如果可以,您将如何制作简单的动画?
采纳答案by jiminy_crist
Matplotlib is the standard graphing library for python, and it comes with a pretty decent animation package. Jake Vanderplas has an excellent tutorial on using this here.
Matplotlib 是 Python 的标准图形库,它带有一个相当不错的动画包。Jake Vanderplas 有一个关于使用它的优秀教程here。
Taken from this link, if you want to animate a sine wave, you'd use the following method:
取自此链接,如果要为正弦波设置动画,可以使用以下方法:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)
# initialization function: plot the background of each frame
def init():
line.set_data([], [])
return line,
# animation function. This is called sequentially
def animate(i):
x = np.linspace(0, 2, 1000)
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
# call the animator. blit=True means only re-draw the parts that have changed.
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=200, interval=20, blit=True)
plt.show()
The animation library calls the function "animate" once every interval (specified as 20 in this example). The function should update the plots appropriately. In this case, it updates "line", which is the array of sine wave data using the set_data method.
动画库每间隔调用一次函数“animate”(在本例中指定为 20)。该函数应该适当地更新绘图。在这种情况下,它使用 set_data 方法更新“line”,它是正弦波数据的数组。

