Matplotlib绘制混淆矩阵及colorbar标签设置

这篇具有很好参考价值的文章主要介绍了Matplotlib绘制混淆矩阵及colorbar标签设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文提供一种通过Matplotlib绘制混淆矩阵并调整colorbar标签的程序。

直接上程序:

from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

def cm_plot(cm,labels):
    # 设置字体、字号
    plt.rc('font',family='Times New Roman',size='14')

    ind_array = np.arange(len(labels))
    x, y = np.meshgrid(ind_array, ind_array)

    for x_val, y_val in zip(x.flatten(), y.flatten()):
        # 转换为百分数,需同时更改colorbar标签(当然也可以直接以样本数表示,后续colorbar无需变动)
        c = round(cm[y_val][x_val]/sum(cm[y_val])*100,1)
        plt.text(x_val, y_val, c, color='red', va='center', ha='center')

    plt.imshow(cm, interpolation='nearest', cmap=plt.cm.binary)

    # colorbar设置
    cb = plt.colorbar()
    tick_locator = ticker.MaxNLocator(nbins=5)
    cb.locator = tick_locator
    cb.set_ticks([0,np.max(cm)//2//2,np.max(cm)//2,(np.max(cm)+np.max(cm)//2)//2,np.max(cm)])
    cb.set_ticklabels(['0.0%', '25.0%','50.0%', '75.0%', '100.0%'])

    x_label = np.array(range(len(labels)))
    plt.xticks(x_label, labels)
    plt.yticks(x_label, labels, rotation=90)
    plt.ylabel('Actual label')
    plt.xlabel('Predict label')

    ax = plt.gca()
    tick_marks = np.array(range(len(labels))) + 0.5
    ax.set_xticks(tick_marks, minor=True)
    ax.set_yticks(tick_marks, minor=True)
    ax.xaxis.set_ticks_position('none')
    ax.yaxis.set_ticks_position('none')
    ax.grid(True, which='minor', linestyle='-')
    
    plt.tight_layout()
    plt.show()

if __name__ == '__main__':
    # 简单示意
    true_label = [0,1,0,0,1,1,0]
    pred_label = [0,0,0,1,1,0,0]
    cm = confusion_matrix(true_label,pred_label)
    labels = ['A','B']
    cm_plot(cm,labels)

最终绘制结果如下图所示: 

Matplotlib绘制混淆矩阵及colorbar标签设置

 一些参考文章:

python实现混淆矩阵 - 知乎

混淆矩阵的解析和python代码实现 - 知乎

使用matplotlib的示例:调整字体-设置刻度、坐标、colormap和colorbar等_一懒百邪生的博客-CSDN博客_cm.jet文章来源地址https://www.toymoban.com/news/detail-501811.html

到了这里,关于Matplotlib绘制混淆矩阵及colorbar标签设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包