plt和sns画图时,出现两个子图

plt和sns画图时,出现两个子图,如何删除第二个空白子图,并保存sns画的图

在这里插入图片描述

fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(10,6)) 
sns.factorplot(kind='box', x="Model", y="auc",data = model_prems_df, showfliers=True,showcaps=True, linewidth=1.5,dodge=False, 
                aspect=2,width=.6,height=8,
                boxprops = {"color":"#000000","facecolor":"#f0fff0"}, # 设置箱体属性,填充色and 边框色 
                flierprops = {"marker":"o","markerfacecolor":"white","color":"black"}, # 设置异常值属性,点的形状、填充色和边框色
                medianprops = {"linestyle":"-","color":"#000000",'linewidth': 3}, # 设置中位数线的属性,线的类型和颜色
                whiskerprops = {'color': "#000000","linestyle":"--"}, #设置须的颜色,黑色
                capprops = {'color': "#000000"},       #设置箱线图顶端和末端横线的属性,颜色为绿色
                ax=ax
              )
ax.set_ylabel('AUROC', fontsize=20)
ax.set_xlabel('Model', fontsize=20)
ax.tick_params(axis="y", width=2, length=7, labelsize=15, direction='out')
ax.tick_params(axis="x", width=2, length=7, labelsize=15, direction='in')
ax.get_xticklabels()[4].set_color('red')

plt.rcParams['xtick.direction'] = 'in'
ax.yaxis.set_ticks_position('left')
plt.rcParams['ytick.direction'] = 'out'
ax.spines['right'].set_linewidth(2); ###设置底部坐标轴的粗细
ax.spines['bottom'].set_linewidth(2); ###设置底部坐标轴的粗细
ax.spines['left'].set_linewidth(2);  ####设置左边坐标轴的粗细
ax.spines['top'].set_linewidth(2);  ####设置左边坐标轴的粗细
ax.grid()

# 使用plt.savefig()时,显示两个子图,并且保存的是第二个子图,
# 此时使用plt.gcf().clear()释放掉plt的第二个子图
plt.gcf().clear()  #获取当前图像并释放内存
# plt.savefig('results/compare_auc.svg',format="svg", bbox_inches = 'tight')
fig.savefig('results/compare_auc.svg',format="svg", bbox_inches = 'tight')

如果不使用plt.gcf().clear() 释放plt的图片内存,那么show出来的图将是两个子图,如下所示:
在这里插入图片描述

使用plt.gcf().clear() 释放plt的图片内存后,并用flg.savefig()保存图片,则保存的为sns画的图。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值