Spyder交互式情节:等待情节继续关闭

时间:2017-10-02 15:50:33

标签: matplotlib spyder interactive

我使用Spyder处理Windows,我用matplotlib绘图。我的问题是我想做交互式绘图(或者有时候绘制很多东西),我希望spyder等待我关闭图来继续代码(与传统终端相同)。

我试过了    plt.ion()    %mpl TkAgg 在加载matplotlib,Ipython和python控制台之前......我找不到任何解决方案。

如果你想要一个例子,目标是"你好"只有当我关闭图形时才打印,Spyder在Windows 10上打印。

import matplotlib.pyplot as plt
plt.figure('Close me to get hello')
plt.plot(0,0,'*')
plt.show()

print("hello")

2 个答案:

答案 0 :(得分:1)

您需要转到

停用Spyder的Matplotlib支持

Tools > Preferences > IPython console > Graphics

并取消选择名为

的选项

Activate support

然后你需要改变你的代码

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.figure('Close me to get hello')
plt.plot(0,0,'*')
plt.show()

print("hello")

在创建绘图之前手动设置后端(在这种情况下为TkAgg)。

答案 1 :(得分:0)

当我运行代码时,阻止后续代码执行的绘图窗口的所需行为已经存在。所以我想还有其他一些设置。出于这个原因,我也无法测试以下内容,但我认为您需要在调用show之前关闭交互模式。

import matplotlib.pyplot as plt
plt.ion() # turn interactive on, if it isn't already
plt.figure('Close me to get hello')
plt.plot(0,0,'*')
plt.draw()
# possibly do other stuff that would make the use of interactive mode useful

plt.ioff() # turn interactive off
plt.show()

print("hello")