使用Matplotlib进行非阻塞绘图。
- 论坛
- 使用Matplotlib进行非阻塞绘图。
12 浏览
使用Matplotlib进行非阻塞绘图。
我在尝试使用matplotlib绘制一个函数时遇到了问题,它会阻塞执行。我尝试了一些人建议的使用show(block=False)
,但我的窗口却冻结了。如果我简单地调用show()
,结果会正确绘制,但执行会被阻塞直到窗口关闭。从我阅读的其他帖子中,我怀疑show(block=False)
是否能够正常工作取决于后端。这个说法正确吗?我的后端是Qt4Agg。你可以看看我的代码,告诉我是否有什么问题吗?下面是我的代码:
from math import * from matplotlib import pyplot as plt print(plt.get_backend()) def main(): x = range(-50, 51, 1) for pow in range(1,5): # 绘制 x^1, x^2, ..., x^4 y = [Xi**pow for Xi in x] print(y) plt.plot(x, y) plt.draw() #plt.show() # 这个可以正确绘制,但会阻塞执行。 plt.show(block=False) # 这个会创建一个空的冻结窗口。 _ = raw_input("按下[回车]继续。") if __name__ == '__main__': main()
PS. 我忘了说,我想每次绘制时更新现有窗口,而不是创建一个新窗口。