python - 一次将所有打开的 matplotlib 图形保存在一个文件中

标签 python matplotlib

我正在尝试将我已经创建的任意数量的 matplotlib 图保存到 1 个文件(PDF?)中。 有没有一种方法可以用一个命令来完成?

最佳答案

MatPlotLib 目前支持 saving multiple figures to a single pdf file .使用此功能的实现是:

from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt

def multipage(filename, figs=None, dpi=200):
    pp = PdfPages(filename)
    if figs is None:
        figs = [plt.figure(n) for n in plt.get_fignums()]
    for fig in figs:
        fig.savefig(pp, format='pdf')
    pp.close()

示例用法

首先创建一些数字,

import matplotlib.pyplot as plt
import numpy as np

fig1 = plt.figure()
plt.plot(np.arange(10))

fig2 = plt.figure()
plt.plot(-np.arange(3, 50), 'r-')

默认情况下,multipage 将打印所有打开的图形,

multipage('multipage.pdf')

这里唯一的陷阱是所有图形都呈现为矢量 (pdf) 图形。如果您希望图形使用光栅图形(即如果文件太大而不是矢量),则可以在绘制包含多个点的数量时使用 rasterized=True 选项。在这种情况下,我包含的 dpi 选项可能会有用,例如:

fig3 = plt.figure()
plt.plot(np.random.randn(10000), 'g-', rasterized=True)

multipage('multipage_w_raster.pdf', [fig2, fig3], dpi=250)

在这个例子中,我选择只打印 fig2fig3

关于python - 一次将所有打开的 matplotlib 图形保存在一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368876/

相关文章:

python - matplotlib: sys.exitfunc 错误

python - 来自大型 CSV 文件的热图

python - Pycharm - 导入 Matplotlib

python - 如何使用 PyTorch 获得语义分割中的 top k 准确率?

python - 如何从 Robot Framework 输出更改 output.xml 的结构

java - 如何在 Scala 或 Java 中解码 Base64 字符串?

python - 用于 Python 的 XGBoost : plot importance

python - 如何解决 python 中的图例颜色问题?

python - 为什么访问 numpy 数组中的一个元素会使我的程序速度减慢这么多?

python - Matplotlib:在对数图中禁用十的幂