python - Matplotlib 图形窗口在交互模式下消失

标签 python matplotlib interactive

<分区>

我在使用 matplotlib 绘图时需要使用交互模式(它应该是一个脚本,而不是 python 或 ipython 控制台)。但是设置 plt.ion() 会导致一个奇怪的错误(?)。当我尝试绘制我的图形时(我不认为这真的很重要,我到底做了什么,因为在非交互模式下它工作得很好)我没有看到它 - 我得到一个空白的灰色窗口用于瞬间,它会暂时消失并且程序退出。 如果我明确添加 plt.draw()(和 plt.pause(1) 以查看结果),我会看到图形按预期显示。如果我在修改后做同样的事情,我想在它可见时对图形进行操作,图形就会改变。但是暂停结束后窗口仍然消失。

我在 Spyder 中运行它,在 Ubuntu 下以 Qt4Agg 作为后端。尝试从终端运行脚本作为 python my_script.py,结果是相同的。

可能是什么问题?在交互模式下如何阻止图形消失?

更新

工作示例:

import matplotlib.pyplot as plt
import numpy as np

plt.ion()

x = np.linspace(1, 10)
y = np.sin(x)
plt.plot(x, y)
plt.draw()
plt.pause(1)

如果我运行这段代码,我会看到正弦图 1 秒,然后窗口消失。

更新 2

我在这里找到了解决方案:https://stackoverflow.com/a/10724654/1304161 如果我在 Spyder 中正确设置了运行选项,它就可以正常工作。虽然在 gnome-terminal 中运行它不起作用,但我并不是真的需要它。希望当它成为 GUI 应用程序的一部分时不会有问题...

最佳答案

我在这里找到了解决方案:https://stackoverflow.com/a/10724654/1304161

如果我在 Spyder 中正确设置了运行选项,它就可以正常工作。虽然在 gnome-terminal 中运行它不起作用,但我并不是真的需要它。希望当它成为 GUI 应用程序的一部分时不会有问题。我会回来的,如果有问题的话:)

关于python - Matplotlib 图形窗口在交互模式下消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405728/

相关文章:

python - 在 Python 3 CGI 中使用 matplotlib

javascript - 如何在图像中添加文本,并且用户还可以保存添加文本的图像?

python - 如何根据节点之间的其他边有条件地在网络中创建边(使用 python Networkx 包)?

python - 将 RIJNDAEL 256 函数从 .Net 转换为 Python

python - 在输入不变的情况下在python中生成连续数字

python - 在具有给定位置坐标的节点图中设置边标签的问题

python - 让 x 轴网格显示在 matplotlib 中

docker - 如何在 Dockerfile 中指定镜像是交互式的?

python - 如何在 Blender 中以编程方式创建逻辑 block ?

python - 人脸识别没有检测到任何 OpenCV