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()
設置前:
設置后: