From: Benjamin R. <ben...@ou...> - 2011-05-06 00:25:26
|
On Fri, Apr 29, 2011 at 7:18 AM, Musa Gabere <mus...@gm...> wrote: > Hi Everyone, > > I am currently using matplotlib version 0.99 Ubuntu operating system. > > I am plotting a figure whose script is as follows. The figure i get is > usually trimmed off. See the attached > figure. Is there a way to solve this problem? Thanks > > import numpy as np > import matplotlib.pyplot as plt > > > 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) > > fig = plt.figure() > > > plt.clf() > ax = fig.add_subplot(111) > > > ax.set_aspect(1) > res = ax.imshow(np.array(norm_conf), cmap=plt.cm.jet, > > > > interpolation='nearest') > > width = len(conf_arr) > > > height = len(conf_arr[0]) > > > for x in xrange(width): > > > for y in xrange(height): > > > ax.annotate(str(conf_arr[x][y]), xy=(x, y), > > > > horizontalalignment='center', > verticalalignment='center') > > > > cb = fig.colorbar(res) > > > alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' > plt.xticks(range(width), alphabet[:width]) > > > > plt.yticks(range(height), alphabet[:height]) > > > plt.savefig('confusion_matrix.png', format='png') > > Musa, I just tested your code with the latest in the development branch, and it appears that whatever bug caused your problem has since been fixed. I don't know when the fix was made, but hopefully it made it into the v1.0.1 release. Cheers, Ben Root |