Python繪制混淆矩陣,漢字顯示label


1. 在計算出混淆矩陣之后,想自己繪制圖形(並且在圖形上顯示漢字),可用

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

confusion = np.array(([91,0,0],[0,92,1],[0,0,95]))
# 熱度圖,后面是指定的顏色塊,可設置其他的不同顏色
plt.imshow(confusion, cmap=plt.cm.Blues)
# ticks 坐標軸的坐標點
# label 坐標軸標簽說明
indices = range(len(confusion))
# 第一個是迭代對象,表示坐標的顯示順序,第二個參數是坐標軸顯示列表
#plt.xticks(indices, [0, 1, 2])
#plt.yticks(indices, [0, 1, 2])
plt.xticks(indices, ['圓形', '三角形', '方形'])
plt.yticks(indices, ['圓形', '三角形', '方形'])

plt.colorbar()

plt.xlabel('預測值')
plt.ylabel('真實值')
plt.title('混淆矩陣')

# plt.rcParams兩行是用於解決標簽不能顯示漢字的問題
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 顯示數據
for first_index in range(len(confusion)):    #第幾行
    for second_index in range(len(confusion[first_index])):    #第幾列
        plt.text(first_index, second_index, confusion[first_index][second_index])
# 在matlab里面可以對矩陣直接imagesc(confusion)
# 顯示
plt.show()

2. 除了設置plt.rcParams的特征之外,顯示漢字的第二個方式 —— 設置fm.FontProperties屬性

import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
import numpy as np

myfont = fm.FontProperties(fname='C:/Windows/Fonts/simsun.ttc')
confusion = np.array(([91,0,0],[0,92,1],[0,0,95]))
plt.plot(confusion[0])
plt.xlabel(u'索引',fontproperties=myfont)
plt.ylabel(u'',fontproperties=myfont)
plt.show()

設置前:

 

 

 

 

設置后:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM