Matplotlib kullanarak bir karmaşa matrisinin görselleştirmesini oluşturmak istiyorum. Aşağıda gösterilen yöntemlerin parametreleri, sınıf etiketleri (alfabe), sınıflandırma sonuçları listeler (conf_arr) ve çıktı dosya adıdır. Şu ana kadarki sonuçtan oldukça memnunum: Son bir sorunla:Matplotlib: Onay işaretlerini keneler arasında taşı
Eksen işaretlerini kılavuz çizgileri arasında ortalayamıyorum. Kapsam parametresini aşağıdaki gibi imshow yöntemine iletirseniz, ızgara, olmasını istediğim gibi hizalar. Bunu açıklarsam, ızgara yanlış işaretlenir ancak etiketler olmasını isterdim. Sanırım ilgili kene ve bir sonraki kene arasındaki onay işaretini taşımanın bir yoluna ihtiyacım var ama bunun mümkün olup olmadığını bilmiyorum. üretilen Görüntü aşağıdaki gibi
def create_confusion_matrix(alphabet, conf_arr, outputname):
norm_conf = []
width = len(conf_arr)
height = len(conf_arr[0])
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(figsize=(14,14))
#fig = plt.figure()
plt.clf()
ax = fig.add_subplot(111)
ax.set_aspect(1)
ax.grid(which='major')
res = ax.imshow(np.array(norm_conf), cmap=plt.cm.binary,
interpolation='none', aspect='1', vmax=1,
##Commenting out this line sets labels correctly,
##but the grid is off
extent=[0, width, height, 0]
)
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.2)
cb = fig.colorbar(res, cax=cax)
#Axes
ax.set_xticks(range(width))
ax.set_xticklabels(alphabet, rotation='vertical')
ax.xaxis.labelpad = 0.5
ax.set_yticks(range(height))
ax.set_yticklabels(alphabet, rotation='horizontal')
#plt.tight_layout()
plt.savefig(outputname, format='png')
:
Ben sol resimdeki gibi keneler/ızgara istiyorum ama ticklabels sağ resimdeki gibi bir konuma sahip olan Özetlemek gerekirse
Bu sorunun çözümü (http://stackoverflow.com/questions/16162514/how-can-i-move-a-tick-label-onlywithout-moving-corresponding-tick) sizin için çalışıyor mu? – BrenBarn
Muhtemel ilgili [matplotlib'deki onay işaretleri arasında x-tick etiketleri ortalanıyor] (http://stackoverflow.com/questions/17158382/centering-x-tick-labels-between-tick-marks-in-matplotlib) – M4rtini
Bu bir açıkça yazılmış, iyi yazılmış bir soru! (+1) Neden reddedildiğinizden emin değilsiniz. –