动态更新绘图Matplotlib Python(用于不稳定的热扩散)

时间:2019-09-16 09:25:46

标签: python matplotlib

我是python的新手,正在尝试做在MATLAB中做了很长时间的事情。我当前的挑战是动态更新绘图,而无需在for或while循环中绘制新图形。我知道也有类似的问题和答案,但大多数问题太复杂了,我认为应该更容易些。 我从这里得到了例子 https://pythonspot.com/matplotlib-update-plot/ 但是我看不到这个数字,没有错误,没有。我添加了两行只是为了查看是否可以看到静态图。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10*np.pi, 100)
y = np.sin(x)

# This is just a test just to see if I can see the plot window
plt.plot(x, y)
plt.show()

plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'b-')



for phase in np.linspace(0, 10*np.pi, 100):
    line1.set_ydata(np.sin(0.5 * x + phase))
    fig.canvas.draw()

有人知道为什么我看不到动态图吗? 谢谢 埃德姆(Erdem)

1 个答案:

答案 0 :(得分:1)

尝试在plt.pause(0.0001)之后在循环内添加plt.show(block=False),并在循环外添加最后一个plt.show()plt.ion()应该可以正常工作;引用一些较早的答案Plot one figure at a time without closing old figure (matplotlib)