2012-09-20 146 views
0

需要使用此腳本來繪製混淆矩陣。通過運行它會出現一個空的圖。似乎我接近解決方案。任何提示?Matplotlib:空混淆矩陣

from numpy import * 
import matplotlib.pyplot as plt 
from pylab import * 

conf_arr = [[50.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [3.0, 26.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0], [4.0, 1.0, 0.0, 5.0, 0.0, 0.0, 0.0], [3.0, 0.0, 1.0, 0.0, 6.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0]] 

norm_conf = [] 
for i in conf_arr: 
     a = 0 
     tmp_arr = [] 
     a = sum(i,0) 
     for j in i: 
     tmp_arr.append(float(j)/float(a)) 
     norm_conf.append(tmp_arr) 

plt.clf() 
fig = plt.figure() 
ax = fig.add_subplot(111) 
res = ax.imshow(array(norm_conf), cmap=cm.jet, interpolation='nearest') 
cb = fig.colorbar(res) 
savefig("confmat.png", format="png") 

謝謝,我有情節。現在,X軸上的刻度非常小(圖形尺寸爲:3釐米×10釐米左右)。我如何放大它們以獲得更加均勻的圖形,比如說10釐米x 10釐米的圖表?一個可能的原因是,我將圖表形象化爲一個子圖?無法找到合適的文獻來調整。

回答

0

在添加新數字之前,您不需要清除當前數字(plt.clf())。

#plt.clf() # <<<<< here 
fig = plt.figure() 
ax = fig.add_subplot(111) 
+0

謝謝,我有情節。現在,X軸上的刻度非常小(圖形尺寸爲:3釐米×10釐米左右)。我如何放大它們以獲得更加均勻的圖形,比如說10釐米x 10釐米的圖表?是否可能的原因是我將圖形視爲一個子圖? – user1665514

+0

爲什麼你不把它作爲一個單獨的問題(或谷歌/查閱文檔)。 –

+0

剛發現一個可能的解決方案,不需要質疑......謝謝 – user1665514