在编写使用matplotlib的脚本时,当我运行脚本时,我会暂时获得一个交互式图形窗口,该窗口在我可以查看绘图之前立即消失。如果我在iPython中以交互方式执行相同的代码,图形窗口将保持打开状态。当我运行脚本时,如何让matplotlib在生成图形后保持绘图打开?
例如,我可以保存此图,但不能用show()
显示:
from matplotlib import pyplot as plt
import scipy as sp
x = sp.arange(10)
y = sp.arange(10)
plt.plot(x,y)
plt.show()
字符串
3条答案
按热度按时间x7yiwoj41#
根据文档,有一个实验性的
block
参数可以传递给plt.show()
。当然,如果你的matplotlib版本不够新,它就不会有这个。如果你有这个特性,你应该能够用
plt.show(block=True)
替换plt.show()
来获得你想要的行为。ih99xse12#
老问题,但更规范的答案(也许),因为它只使用记录而不是实验性的功能。
在脚本退出之前,进入非交互模式并显示图形。这可以使用
plt.show()
或plt.gcf().show()
来完成。两者都将阻止:字符串
或
型
在这两种情况下,
show
函数将不会返回,直到图形关闭。第一种情况是封锁所有图形,第二种情况是封锁,直到一个图形关闭。您甚至可以使用
matplotlib.rc_context
上下文管理器在程序中间临时修改交互状态,而无需更改任何其他内容:型
或
型
r8xiu3jd3#
对于任何人这适用于,我有问题,我的新窗口被自动关闭,无论交互式后端。我的错误是意外地在终端启动的Python版本中运行脚本,而不是调用我的系统版本。为了解决这个问题,我只需要
quit()
我的终端Python会话并重新运行程序--简单但令人沮丧的调试!