我有一个在循环中更新的matplotlib图形。我希望窗口在循环结束时保持打开,脚本继续。
下面是一个小例子:
import tkinter
import matplotlib as mpl
mpl.use('TKAgg', force=True)
import matplotlib.pyplot as plt
import random
def main():
showFigure()
print("This is printed before the figure is closed.")
def showFigure():
x, y = [], []
plt.ion()
fig = plt.figure()
for i in range(0, 100):
x.append(i)
y.append(random.randint(0, 10))
plt.plot(x, y, 'r-')
fig.canvas.draw()
fig.canvas.flush_events()
if __name__ == '__main__':
main()
在那个例子中,我希望在循环结束时窗口保持打开,并且打印“This is printed before the figure is closed.”(这意味着脚本确实继续了)。
我已经尝试plt.show在showFigure()函数的末尾使用block选项添加www.example.com(),但它没有达到我想要的效果。
- 使用
plt.show(block=True)
:Figure保持打开状态,但只有关闭窗口脚本才会继续。 - 使用
plt.show(block=False)
:图形在循环结束时自动关闭。与plt.show()
相同。
1条答案
按热度按时间bwitn5fc1#
如果我理解正确的话,只需在
main
函数的末尾添加plt.show(block=True)
就可以完成这项工作。图显示、更新并停留在屏幕上-然后执行
print
指令,脚本保持运行(等待),而matplotlib图未关闭。