我需要在使用matplotlib绘图时使用交互模式(应该是一个脚本,而不是python或ipython控制台)。但是设置
如果我明确添加
我在Ubuntu下使用Qt4Agg作为后端在Spyder中运行它。尝试从终端运行脚本,如
问题可能出在哪里?如何防止图形在交互模式下消失?
更新:
工作示例:
如果我运行这段代码,我会看到正弦波图形1秒钟,然后窗口消失。
更新2:
我在这里找到了一个解决方案:https://dev59.com/62gv5IYBdhLWcg3wSe22#10724654 如果我在Spyder中正确设置运行选项,它可以完美地工作。虽然在gnome-terminal中运行不起作用,但我真的不需要它。希望当它成为GUI应用程序的一部分时不会有问题......
plt.ion()
会导致奇怪的错误。当我尝试绘制我的图形时(我认为确切地做什么并不重要,因为在非交互模式下它运行得非常好),我看不到它 - 我只能瞬间看到一个空灰色窗口,然后程序就退出了。如果我明确添加
plt.draw()
(和plt.pause(1)
来查看结果),我将看到图形按预期显示。如果我在图形可见时进行所需修改后重复此操作,则图形将更改。但是,在暂停结束后,窗口仍然消失。我在Ubuntu下使用Qt4Agg作为后端在Spyder中运行它。尝试从终端运行脚本,如
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://dev59.com/62gv5IYBdhLWcg3wSe22#10724654 如果我在Spyder中正确设置运行选项,它可以完美地工作。虽然在gnome-terminal中运行不起作用,但我真的不需要它。希望当它成为GUI应用程序的一部分时不会有问题......