由 matplotlib.plot.show 创建的图形在 python 脚本通过命令行完成后自动关闭

由 matplotlib.plot.show 创建的图形在 python 脚本通过命令行完成后自动关闭

我想绘制一个图表,并在脚本完成后保留它。但我尝试了很多次后都失败了。

脚本执行完成后,show()方法创建的图形将同时关闭。

代码:

import matplotlib.pyplot as plt

plt.scatter([0], [1])
plt.draw()
plt.show(block=False)

for i in range(10):
    plt.scatter([i], [i+1])
    plt.draw()
    plt.pause(0.001)

我的版本如下:

user@ya:~/$ sudo pip freeze | grep matplotlib
matplotlib==2.2.3
user@ya:~/$ sudo pip -V
pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

环境:

I only execute script in Ubuntu ex: user@ya: python xxx.py
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:   xenial

有人能帮帮我吗?我只想像 Matlab 那样,即使脚本完成也不会关闭绘制的图形。

答案1

这更像是一个针对 stackoverflow.com 而不是 askubuntu.com 的问题

无论如何,修复方法很简单。你用 调用了plt.show()block=False这就是它存在于脚本末尾的原因。

只需添加一行即可:

plt.show()

在剧本的结尾,情节将保持开放。

相关内容