带有分类/错误分类实例数的混淆矩阵(Python/Matplotlib)
我正在用matplotlib绘制一个混乱矩阵,代码如下:带有分类/错误分类实例数的混淆矩阵(Python/Matplotlib),python,matplotlib,confusion-matrix,Python,Matplotlib,Confusion Matrix,我正在用matplotlib绘制一个混乱矩阵,代码如下: from numpy import * import matplotlib.pyplot as plt from pylab import * conf_arr = [[33,2,0,0,0,0,0,0,0,1,3], [3,31,0,0,0,0,0,0,0,0,0], [0,4,41,0,0,0,0,0,0,0,1], [0,1,0,30,0,6,0,0,0,0,1], [0,0,0,0,38,10,0,0,0,0,0], [0,0,
from numpy import *
import matplotlib.pyplot as plt
from pylab import *
conf_arr = [[33,2,0,0,0,0,0,0,0,1,3], [3,31,0,0,0,0,0,0,0,0,0], [0,4,41,0,0,0,0,0,0,0,1], [0,1,0,30,0,6,0,0,0,0,1], [0,0,0,0,38,10,0,0,0,0,0], [0,0,0,3,1,39,0,0,0,0,4], [0,2,2,0,4,1,31,0,0,0,2], [0,1,0,0,0,0,0,36,0,2,0], [0,0,0,0,0,0,1,5,37,5,1], [3,0,0,0,0,0,0,0,0,39,0], [0,0,0,0,0,0,0,0,0,0,38] ]
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")
但是我想在混淆矩阵上显示数字,就像这张图(右边的那个)。如何在图形上绘制conf\u arr
我能真正看到的唯一方法就是使用注释。试试下面这些句子:
for i,j in ((x,y) for x in xrange(len(conf_arr))
for y in xrange(len(conf_arr[0]))):
ax.annotate(str(conf_arr[i][j]),xy=(i,j))
在保存数字之前。它会添加数字,但我会让您了解如何获得数字的大小以及您想要的大小。您可以使用它在绘图中放置任意文本。例如,在代码中插入以下行将写入数字(请注意,第一行和最后一行来自代码,用于显示插入我的行的位置):
感谢您的解决方案。这正是我需要的。干杯哇,这段代码和Phaistos磁盘一样可读
res = ax.imshow(array(norm_conf), cmap=cm.jet, interpolation='nearest')
for i, cas in enumerate(conf_arr):
for j, c in enumerate(cas):
if c>0:
plt.text(j-.2, i+.2, c, fontsize=14)
cb = fig.colorbar(res)