本文共 528 字,大约阅读时间需要 1 分钟。
调用shap.image_plot后发现使用plt.savefig保存下来的图像为空白图,经过查资料发现这是因为调用plt.show()后会生成新画板。(参考链接:)
找到了一篇介绍如何保存Shap图的博客(原文地址:),但是里面并没有提到image_plot怎么处理。此外,前面那个链接里提到的“先在画图前调用myfig = plt.gcf(),再调用myfig.savefig()的方法也不起作用”。
最后干脆去看了一下shap.image_plot的源代码,不知道怎么查看函数源代码的朋友可以去看一下我写的另一篇博客,简单易操作(链接:)发现image_plot使用plt显示图像的源代码为:
if show: pl.show()
这就好办了,show是调用image_plot时可以选择传递的一个参数,默认为True,调用的时候设为False就行了,代码如下:
shap.image_plot(shap_values, -x_test[1:5], show = False)plt.savefig('./shap.png')
然后就能在源码同级目录下看到保存的shap.png了。
转载地址:http://ybqzi.baihongyu.com/