如果我运行以下代码:import matplotlib.pyplot as pltimport numpy as np#plt.ion()while True: print('loop') x = range(10) y = np.random.rand(10) plt.scatter(x, y) plt.show()然后我看到屏幕上显示了一个散点图。然后每次我关闭绘图窗口时,它都会显示一个带有新数据的新绘图。但是,如果我取消注释该行plt.ion(),则根本不会显示任何内容。没有创建窗口,程序只是继续循环,打印出“循环”。我希望能够显示图形,然后自动返回代码,图形仍然显示。我怎样才能做到这一点?
1 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
如果你想在同一个图形窗口的顶部绘图,而不是在每次迭代时生成一个新窗口,以下将起作用:
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
fig, ax = plt.subplots(1, 1)
while True:
# If wanting to see an "animation" of points added, add a pause to allow the plotting to take place
plt.pause(1)
x = range(10)
y = np.random.rand(10)
ax.scatter(x, y)
您看到的结果将取决于您使用的 matplotlib 后端。如果您想查看添加的新点,您应该使用Qt4或Qt5
添加回答
举报
0/150
提交
取消