簡體   English   中英

將所有打開的matplotlib數字一次保存在一個文件中

[英]Saving all open matplotlib figures in one file at once

我試圖將已經創建的任意數量的matplotlib數字保存到1個文件中(PDF?)。 有沒有辦法用一個命令做到這一點?

MatPlotLib目前支持將多個數字保存到單個pdf文件中 使用此功能的實現將是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM