[英]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)
在這個例子中,我選擇只打印fig2
和fig3
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.