我花了很长时间寻找解决方案,并找到了答案。
看起来,为了获得您(和我)想要的东西,您需要将
plt.ion(),
plt.show()(而不是与
block=False)结合在一起,最重要的是,
plt.pause(.001)(或您想要的任何时间)结合在一起。该暂停是必须的,因为GUI事件,而主代码正在睡觉,包括绘图发生。这很可能是通过从休眠线程中获取时间来实现的,所以IDE可能会为此惹恼我不知道。
这是对我适用于python 3.5的实现:
import numpy as npfrom matplotlib import pyplot as pltdef main(): plt.axis([-50,50,0,10000]) plt.ion() plt.show() x = np.arange(-50, 51) for pow in range(1,5): # plot x^1, x^2, ..., x^4 y = [Xi**pow for Xi in x] plt.plot(x, y) plt.draw() plt.pause(0.001) input("Press [enter] to continue.")if __name__ == '__main__': main()


