python将多个matplotlib画的图保存到一张图里

方法1:用pdf

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

with PdfPages('multipage_pdf.pdf') as pdf:
    model1, model2 = m1['model'], m2['model']
    X_train1, X_train2 = m1['X_train'], m2['X_train']


    for f in [ 'bun_min']:
        pdp_f1 = pdp.pdp_isolate(
        model=model1, dataset=X_train1[X_train1[f].notnull()], model_features=X_train1.columns.tolist(), feature=f
        )
        pdp_f2 = pdp.pdp_isolate(
        model=model2, dataset=X_train2[X_train2[f].notnull()], model_features=X_train2.columns.tolist(), feature=f
        )

        fig, axes = pdp.pdp_plot(pdp_f1, f, plot_lines=True, frac_to_plot=0.5, plot_pts_dist=True)
        pdf.savefig()
        fig, axes = pdp.pdp_plot(pdp_f2, f, plot_lines=True, frac_to_plot=0.5, plot_pts_dist=True)
        pdf.savefig()

 

 

方法2: 先保存在image,再加载image

from PIL import Image as ImagePIL, ImageFont, ImageDraw
import matplotlib.image as mpimg # mpimg 用于读取图片

for f in [ 'bun_min']:
    pdp_f1 = pdp.pdp_isolate(
    model=model1, dataset=X_train1[X_train1[f].notnull()], model_features=X_train1.columns.tolist(), feature=f
    )
    pdp_f2 = pdp.pdp_isolate(
    model=model2, dataset=X_train2[X_train2[f].notnull()], model_features=X_train2.columns.tolist(), feature=f
    )
    #保存图像
    fig, axes = pdp.pdp_plot(pdp_f1, f, plot_lines=True, frac_to_plot=0.5, plot_pts_dist=True)
    plt.savefig(f'pdp1_{f}.jpg',dpi=300)
    fig, axes = pdp.pdp_plot(pdp_f2, f, plot_lines=True, frac_to_plot=0.5, plot_pts_dist=True)
    plt.savefig(f'pdp2_{f}.jpg',dpi=300)
    

    #加载图像
    img1 = mpimg.imread(f'pdp1_{f}.jpg') 
    img2 = mpimg.imread(f'pdp2_{f}.jpg') 
    size = 20
    fig = plt.figure() 
    subplot(211) 
    imshow(img1) 
    title('sepsis', loc='left', fontsize=size) 
    axis('off') 
    subplot(212) 
    imshow(img2) 
    title('normal', loc='left', fontsize=size) 
    axis('off') 
    fig_name = 'bun_sepsis_normal.jpg'
    plt.savefig(fig_name, format='jpg', dpi=500, bbox_inches='tight')

参考:

https://blog.youkuaiyun.com/cym0359/article/details/87930641

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值