想将scorecard的woe图保存下来,碰到了一些小困难。
import scorecardpy as sc
import matplotlib.pyplot as plt
import pandas as pd
import xlsxwriter #需要有,没有的话pip install 一下
data=sc.germancredit() #获取自带的测试数据
writer =pd.ExcelWriter('save_picture.xlsx',engine='xlsxwriter') #创建一个空的excel
sheet =writer.book.add_worksheet('picture') #准备将要写入的sheet
var_list = data.variable.unique() #把所有变量保存一下
for i in range(len(var_list)):
#这里就可以用数字将图片保存的时候,可以根据图片顺序而设定保存图片的起始位置
bins ={}
bins[var_list[i]] = data[data['variable']==var_list[i]]
plotlist = sc.woebin_plot(bins)
for key,j in plotlist.items():
plt.savefig(str(key)+'1.png') #这里必须先保存,否则保存的图片会是白的,
sheet.insert_image(i*25,0,str(key)+'1.png') #设定每个图片保存的起始位置,防止所有图片重叠
plt.show(j)
writer.close() #一定要保存,否则没结果
最终结果: