如何将SHAP部分依赖图保存为PDF文件?
解决方法
你当前代码的问题出在调用了plt.show()——这个函数会显示图形并释放当前的Figure对象,之后再调用plt.savefig()就无法正确捕获到要保存的图了。
修正后的代码如下:
import shap import matplotlib.pyplot as plt # 生成部分依赖图,设置show=False避免自动显示 shap.partial_dependence_plot( "B", model.predict, X100, ice=False, show=False, model_expected_value=True, feature_expected_value=True ) # 直接保存图形,无需先调用plt.show() plt.savefig('K.pdf', bbox_inches='tight', dpi=600) # 如果之后需要查看图形,再调用plt.show() plt.show()
关键注意点:
- 必须让
shap.partial_dependence_plot的show参数保持False,避免shap自动触发图形显示并释放Figure - 先执行
plt.savefig()再调用plt.show()(如果需要查看图形的话)——plt.show()会关闭当前绘图上下文,导致后续无法保存 bbox_inches='tight'能防止图形边缘内容被截断,dpi=600可以保证PDF文件的清晰度
内容的提问来源于stack exchange,提问作者user20155022
相关产品推荐
相关产品推荐

