python matplotlib 画的多张图,合并写入同一pdf

参考: 知乎题主问答(非常感谢)和mpl官方网站例子啊

https://www.zhihu.com/question/68489126/answer/334893776

https://matplotlib.org/examples/pylab_examples/multipage_pdf.html

知乎题主说比较复杂,我觉得还挺方便的,可能我的图是写好函数以后根据变量名字循环生成的,所以比较简单。

本来以前是画图的函数里结尾是plt.close()。现在将这个去掉,在with PdfPages('pdf文件名字') as pdf:里面,循环画图,但是每次循环的时候,加上 pdf.savefig()和plt.close()。plt.close()放在函数外面。

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号
mpl.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
from matplotlib.backends.backend_pdf import PdfPages
#需要画的变量的名字都放在factorList里面,写一个画图(折线图)的函数plot_factor,需要三个参数
#但是这个画图函数里面没有写plt.close(),而是在循环时候写在函数外。
with PdfPages('pdf名称.pdf') as pdf:  
    for i in range(len(factorList)):
        plot_factor(factorList[i], xaxislabel[i], dateSeries)
        pdf.savefig()
        plt.close()



猜你喜欢

转载自blog.csdn.net/henbile/article/details/79974037