我想在每次长时间循环后刷新图。从我的谷歌搜索来看,最好的选择似乎是在循环中使用plt.draw()
,而不是matplotlib的动画模块,因为我只希望在有新数据可用时进行更新。
尽管plt.draw()
在pycharm中不起作用,即使通过外部外壳运行时,它在相同的解释器中也可以工作。我什至没有得到一个空的matplotlib窗口。我尝试过使用互动模式和不使用互动模式。
Matplotlib版本3.1.0
Python版本3.6.5
Pycharm 2018.1.1
下面是另一篇文章的一些代码,这些代码在pycharm之外可以正常工作,但是在pycharm中,我得到的退出代码为0,甚至没有错误。
import matplotlib.pyplot as plt
import numpy as np
# import matplotlib
#
# print(matplotlib.get_backend())
for i in range(50):
y = np.random.random([10,1])
plt.plot(y)
plt.draw()
plt.pause(0.0001)
plt.clf()
期望一系列随机图,除了退出代码0以外什么都不会得到
答案 0 :(得分:0)
您不需要使用plt.draw()
。尝试以下代码:
import matplotlib.pyplot as plt
import numpy as np
for i in range(10):
y = np.random.random([10, 1])
plt.plot(y, 'o')
plt.pause(3)
plt.close()
答案 1 :(得分:0)
您可以将show()
的屏蔽设置设为false。
for i in range(50):
y = np.random.random([10,1])
plt.plot(y)
if i <1:
plt.show(block=False)
plt.draw()
plt.pause(0.0001)
plt.clf()