首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用/跳过show()

禁用/跳过show()
EN

Stack Overflow用户
提问于 2013-05-27 01:12:52
回答 1查看 107关注 0票数 1

我正在编写一个脚本,以便从数据中生成许多绘图,每个绘图首先用plt.savefig()保存,然后由plt.show()显示。在第一阶段,我希望显示所有的图,并为每个图停止脚本,以允许调整,例如轴限制,比例,标签。

在第二阶段,当我在LaTex中包含这些图并完成布局时,我希望所有的图都保存到pdf中,而不会在重新执行脚本进行最终编辑时弹出。

有没有一个简单的命令可以放在我的脚本前面禁用plt.show(),这样在第二阶段脚本就可以在后台运行了?

我知道我可以使用plt.ion()来实现plt.show()的非阻塞,但那会不断弹出窗口,把我的注意力从我的latex编辑器窗口(我在Ubuntu上)上移开。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-27 01:19:39

您提出的问题并不正确,但要理解答案,您需要对matplotlib的体系结构有一些了解。还有pyplot,这是一个基于状态机的层,旨在与ipython一起工作,以模仿类似MATLAB的体验。这是建立在OO接口之上的(您实际上应该将其用于脚本,而不是pyplot,但我离题了)。OO层知道如何绘制canvas,以及如何转换数据->抽象的漂亮线条。canvas是由多种后端中的一种提供的,这些后端知道如何将抽象的漂亮行变成实际的漂亮行。默认情况下,您可能正在使用GTKAgg后端或TKAgg后端,这两个后端都是交互式后端,它们将线条绘制到嵌入在gui中的画布。

你只需要使用第二次通过的非交互式后端。

在您脚本中包括:

代码语言:javascript
运行
复制
import matplotlib
matplotlib.use('PDF')

在导入pyplot之前,当您想要交互图形时,注释掉这一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16761694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档