禁用/跳过显示()

2024-03-28 18:39:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我知道我可以使用plt.ion()使plt.show()无阻塞,但这会不断弹出窗口,从我的latex编辑器窗口(我在Ubuntu上)夺走我的注意力。你知道吗


Tags: 数据命令脚本编辑绘图pdfshowplt
1条回答
网友
1楼 · 发布于 2024-03-28 18:39:44

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

您只需要第二次使用非交互式后端即可。你知道吗

在脚本中包括:

import matplotlib
matplotlib.use('PDF')

在导入pyplot之前,在需要交互式图形时对该行进行注释。你知道吗

相关问题 更多 >