2010-01-02 4 views
17

Pylab kullanarak bir karmaşa matrisini çizmek istiyorum. Yatay eksen boyunca sınıf etiketleri uzun, bu yüzden onları dikey olarak döndürmek istiyorum. Bununla birlikte, onları aşağıdan değil, eksen üstüne çizmek istiyorum.Üstte değil, dikey xtick etiketleri

pylab.imshow(confusion_matrix) 
pylab.xticks(..., rotation='vertical') 

ve bu komut rotasyon olmadan üst üste yatay etiketleri çizebilirsiniz:

Bu komut altındaki düşey etiketleri çizebilirsiniz

pylab.matshow(confusion_matrix) 

ama ben hem does bir şey bulamıyorum. Aşağıdaki komut çalışmıyor.

pylab.matshow(confusion_matrix) 
pylab.xticks(..., rotation='vertical') 

dikey dönme ile eksen üstünde xticks bir karışıklık matrisi çizmek için bir yol önerebilir? Teşekkür ederim.

DÜZENLEME Yardımlarınız için, Mark teşekkür ederiz. Kene özelliklerini daha yakından inceleyerek doğru yolda buldum. Cevabınızdaki tek fark ve arzu ettiğim cevap, bu fikri bir arsa değil AxesImage'a uygulamaktır. Araştırmadan sonra, burada cevap: gösterisi hakkında unutma ... okuyanlar için

im = pylab.matshow(confusion_matrix) 
for label in im.axes.xaxis.get_ticklabels(): 
    label.set_rotation(90) 
im.figure.show() 

()! Figürü yenilemem gerektiğini unutmuştum. Aşağıdaki çıktıya bakın.

Confusion matrix with vertical labels. http://up.stevetjoa.com/rotate_ticklabels.png

cevap

10

seni doğru anladıysam, bu kapanmaya alacak. Etiketlerinizi xaxis hattından çıkarmak için boşluklarla 'yapıştırmanız' gerekebilir. YANIT

from matplotlib import pylab 
pylab.plot([0, 6], [0, 6]) 
pylab.xticks([1,2,3,4,5,6],('one','two','three','four','five','six'),rotation='vertical',verticalalignment='bottom') 

DÜZENLEME bunları üst x ekseni üzerinde dikey döndürülmüş istiyorsanız

, bu deneyin YORUM İÇİN:

pylab.plot([0, 6], [0, 6]) 
pylab.xticks([1,2,3,4,5,6],('one','two','three','four','five','six')) 
for tick in pylab.gca().xaxis.iter_ticks(): 
    tick[0].label2On = True 
    tick[0].label1On = False 
    tick[0].label2.set_rotation('vertical') 
+0

İstek yanıtınız için teşekkür ederiz. Belirsizdim. Tüm rakamın üstünde bulunan etiketleri çizmeye çalışıyorum. Örneğin, pylab.matshow() bunu yapar, ancak etiketler döndürülemez. Onları döndürmek gerçekten çok güzel olurdu, çünkü özellikle karışıklık matrisi büyük olduğunda her şeyi daha okunabilir yapıyor. –

+0

@Steve, yukarıdaki düzenlemelere bakın. – Mark

1

Yazınızı Okuma ve başıma çalışıyorum, Eksenleri üstte bir çok basit bir yolla buldum: pylab.gca().tick_top()

Şerefe !

+0

Yorumunuz için teşekkür ederiz. Bununla birlikte, 'tick_top', yalnızca işaretlerin ekseninin altından yukarı doğru hareket eder. Bu da matshow'un yaptığı şey. Dikey olarak döndürmez. Yine de, "tick_top" bilmek güzeldir! –

+1

Matshow kullanmadığınız zaman özellikle ilginçtir;) – PierreE