我是matplotlib的新手。我有一组在Python中更新的x-y坐标列表,并希望使用matplotlib的pyplot进行动画处理。我想提前指定x轴和y轴的范围。以下是我的当前代码:
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[5,6,7,8]
for t in range(100):
#lists x and y get updated here
#...
plt.plot(x, y, marker='o', linestyle='None')
plt.show()
如您所见,我在迭代循环的结尾使用了
plt.plot()
和plt.show()
来仅绘制最终坐标。但我想把这一步放到循环内部,并在每次迭代时暂停指定时间后进行绘制,以便在循环运行时获得动画效果。只是将该语句移至循环内部或进行微调并不起作用。虽然我希望保持简单,不想使用
matplotlib.animation
等过于复杂的模块和库。是否有一些简单的方法(仅使用plt.pause()
之类的东西,可能只需要更少的其他内容),让我达到想要的效果呢?我查看了许多在线资源,但大多数方法都存在一个问题:我正在Windows上使用python(x,y)(即Python版本2.7),使用过于复杂的模块和库会导致崩溃。但是,我能够运行诸如此示例之类的简单内容,它接近我想要的效果,但还不够完美。因此,也许最好的方法是修改这个示例,使其适用于我的2D数据情况(该示例适用于1D行)。但欢迎提出任何其他建议。
ax.clear()
可能更方便;这样你就可以简单地绘制一个新的图形,而不需要区分第一次和后续运行。另外,plt.pause()
对我来说会导致错误,我改用了fig.canvas.start_event_loop()
。 - Scipio