方法1:用pdf
from matplotlib.backends.backend_pdf import PdfPages import matplotlib.pyplot as pltwith 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