TensorFlow 热力图数字显示不全问题

热力图给混淆矩阵可视化还是很方便的,但是会有以下问题:
混淆矩阵C2为:
[[ 955 0 4 0 5 10 8 0 3 3]
[ 0 1113 2 1 0 3 2 7 1 4]
[ 7 5 978 21 5 3 2 20 13 3]
[ 1 3 6 942 0 16 3 4 16 12]
[ 1 1 3 1 936 3 10 6 6 23]
[ 2 1 1 13 2 835 8 2 9 11]
[ 7 3 6 1 7 4 917 0 10 1]
[ 1 1 12 6 4 0 0 968 6 12]
[ 2 7 15 20 3 15 7 7 908 8]
[ 4 1 5 5 20 3 1 14 2 932]]
作图程序:
sns_plot = sns.heatmap(C2,annot=True,ax=ax, cmap=‘Blues’) #画热力图
#sns_plot.tick_params(labelsize=9)
#cax = plt.gcf().axes[-1]
#cax.tick_params(labelsize=15) # colorbar 刻度字体大小
ax.set_title(‘Confusion matrix’) #标题
ax.set_xlabel(‘predict’) #x轴
ax.set_ylabel(‘true’) #y轴
plt.show()
图为:在这里插入图片描述
对角线竟然全变了,小白困惑,另外可能被人误会是数据造假。实际上造成这种问题的原因是:默认的科学计数法:比如对角线第一个955,TensorFlow记为9.6e+02。但是由于空比较小显示不全,因此显示的是中间的6e+0(吐槽一句这实在太坑了)

解决的办法就是在sns.heatmap语句中加上fmt=“d”,这样就不是科学计数法表示了。
给混淆矩阵C2画图:
[[ 958 1 7 2 0 5 7 3 4 4]
[ 0 1102 3 0 1 0 2 6 0 1]
[ 3 7 979 3 6 1 5 24 10 3]
[ 0 4 16 968 0 33 1 10 16 15]
[ 2 1 0 3 940 2 7 14 5 44]
[ 3 1 0 9 4 824 10 0 15 7]
[ 6 1 5 0 6 9 922 0 9 1]
[ 4 3 7 1 2 1 1 956 6 19]
[ 1 14 15 18 4 13 3 4 901 7]
[ 3 1 0 6 19 4 0 11 8 908]]
程序为:
sns_plot = sns.heatmap(C2,annot=True,ax=ax, cmap=‘Blues’,fmt=“d”) #画热力图
#sns_plot.tick_params(labelsize=9)
#cax = plt.gcf().axes[-1]
#cax.tick_params(labelsize=15) # colorbar 刻度字体大小
ax.set_title(‘Confusion matrix’) #标题
ax.set_xlabel(‘predict’) #x轴
ax.set_ylabel(‘true’) #y轴
plt.show()
运行得到的图为:
在这里插入图片描述
可以显示了

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值