python中的动态绘图

时间:2017-03-02 22:55:55

标签: animation matplotlib

我正在尝试在Python中创建一个绘图,其中正在绘制的数据随着我的模拟进展而更新。在MATLAB中,我可以使用以下代码执行此操作:

t = linspace(0, 1, 100);
figure
for i = 1:100
x = cos(2*pi*i*t);
plot(x)
drawnow
end

我正在尝试在matplotlib模块中使用FuncAnimation的{​​{1}}函数在类中执行此操作。它调用一个函数animation,它在我的模拟中每个时间步后重新计算电压。我把它设置如下:

plot_voltage

当我的模拟运行时,数字显示但只是冻结。但是,代码运行时没有错误。有人可以让我知道我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

以下是使用FuncAnimation将matlab代码翻译成matplotlib:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

t = np.linspace(0, 1, 100)
fig = plt.figure()
line, = plt.plot([],[])

def update(i):
    x = np.cos(2*np.pi*i*t)
    line.set_data(t,x)

ani = animation.FuncAnimation(fig, update, 
                frames=np.linspace(1,100,100), interval=100)
plt.xlim(0,1)
plt.ylim(-1,1)
plt.show()