我正在尝试在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
当我的模拟运行时,数字显示但只是冻结。但是,代码运行时没有错误。有人可以让我知道我错过了什么吗?
答案 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()