2010-01-02 20 views
17

मैं पिलैब का उपयोग करके एक भ्रम मैट्रिक्स प्लॉट करना चाहता हूं। क्षैतिज धुरी के साथ कक्षा लेबल लंबे होते हैं, इसलिए मैं उन्हें लंबवत घुमाने के लिए प्लॉट करना चाहता हूं। हालांकि, मैं उन्हें धुरी के शीर्ष पर भी प्लॉट करना चाहता हूं, नीचे नहीं।शीर्ष पर वर्टिकल xtick लेबल, नीचे

यह आदेश तल पर खड़ी लेबल प्लॉट कर सकते हैं:

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

और यह आदेश रोटेशन के बिना शीर्ष पर क्षैतिज लेबल प्लॉट कर सकते हैं:

pylab.matshow(confusion_matrix) 

लेकिन मैं कुछ भी दोनों करता है कि नहीं मिल रहा। निम्न आदेश काम नहीं करता है।

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

आप ऊर्ध्वाधर रोटेशन के साथ धुरी के शीर्ष पर xticks के साथ एक भ्रम मैट्रिक्स प्लॉट करने के लिए एक तरह से बता सकते हैं? धन्यवाद।

संपादित

आप आपकी मदद के लिए धन्यवाद, मार्क,। यह मुझे टिक संपत्तियों की अधिक बारीकी से निरीक्षण करके सही रास्ते पर मिला। आपके उत्तर और मेरे वांछित उत्तर के साथ एकमात्र अंतर उस विचार को एक्सिस इमेज पर लागू कर रहा है, प्लॉट नहीं। जांच के बाद, यहाँ जवाब है:

im = pylab.matshow(confusion_matrix) 
for label in im.axes.xaxis.get_ticklabels(): 
    label.set_rotation(90) 
im.figure.show() 
पढ़ने लोगों के लिए

... शो के बारे में भूल नहीं है()! मैं भूल गया कि मुझे आंकड़े को ताज़ा करने की जरूरत है। नीचे आउटपुट देखें।

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

उत्तर

10

अगर मैं तुम्हें सही ढंग से समझ, यह आप बंद हो जाएगा। आपको एक्सएक्सिस लाइन से बाहर ले जाने के लिए रिक्त स्थान के साथ अपने लेबल को 'पैड' करना पड़ सकता है। प्रतिक्रिया में

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') 

संपादित

यदि आप चाहते हैं उन्हें शीर्ष x- अक्ष पर खड़ी घुमाया, इस कोशिश टिप्पणी करने के लिए:

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

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद। मैं अस्पष्ट था। मैं पूरे आंकड़े के शीर्ष पर लेबल प्लॉट करने की कोशिश कर रहा हूं। उदाहरण के लिए, pylab.matshow() यह करता है, लेकिन लेबल घुमाया नहीं जा सकता है। उन्हें घुमाने के लिए वास्तव में अच्छा होगा, क्योंकि यह सबकुछ अधिक पठनीय बनाता है, खासकर जब भ्रम मैट्रिक्स बड़ा होता है। –

+0

@Steve, उपरोक्त संपादन देखें। – Mark

1

अपनी पोस्ट पढ़ना, और अपने आप से कोशिश कर रहा है, मुझे अक्षों पर शीर्ष पर टिक स्थापित करने का एक बहुत ही सरल तरीका मिला: pylab.gca().tick_top()

चीयर्स !

+0

आपकी टिप्पणी के लिए धन्यवाद। हालांकि, 'tick_top' केवल अक्ष के नीचे से शीर्ष तक टिक चलाता है। यह भी 'matshow' करता है। यह उन्हें लंबवत घुमा नहीं है। फिर भी, 'tick_top' जानना अच्छा है! –

+1

जब आप matshow का उपयोग नहीं करते हैं तो यह विशेष रूप से दिलचस्प होता है;) – PierreE

संबंधित मुद्दे