我有问题,试图使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): # plot x^1, x^2, ..., x^4
y = [Xi**pow for Xi in x]
print(y)
plt.plot(x, y)
plt.draw()
#plt.show() #this plots correctly, but blocks execution.
plt.show(block=False) #this creates an empty frozen window.
_ = raw_input("Press [enter] to continue.")
if __name__ == '__main__':
main()
PS.我忘了说,我想更新现有的窗口,每次我绘制一些东西,而不是创建一个新的。