我是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)
答案 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)