我正在尝试将我已经创建的任意数量的 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)
在这个例子中,我选择只打印 fig2
和 fig3
。
关于python - 一次将所有打开的 matplotlib 图形保存在一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368876/