我使用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")
答案 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")