带有 ion() 的 MatPlotLib 不显示窗口

如果我运行以下代码:


import matplotlib.pyplot as plt

import 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(),则根本不会显示任何内容。没有创建窗口,程序只是继续循环,打印出“循环”。


我希望能够显示图形,然后自动返回代码,图形仍然显示。我怎样才能做到这一点?


守着星空守着你
浏览 194回答 1
1回答

慕哥9229398

如果你想在同一个图形窗口的顶部绘图,而不是在每次迭代时生成一个新窗口,以下将起作用:import matplotlib.pyplot as pltimport numpy as npplt.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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python