Voglio tracciare una matrice di confusione usando Pylab. Le etichette delle classi lungo l'asse orizzontale sono lunghe, quindi voglio tracciarle ruotate verticalmente. Tuttavia, voglio anche tracciarli sopra l'asse, non sotto.Etichette xick verticali in alto, non in basso
Questo comando può tracciare etichette verticali sulla parte inferiore:
pylab.imshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
e questo comando può tracciare etichette orizzontali in alto senza rotazione:
pylab.matshow(confusion_matrix)
ma non riesco a trovare nulla che fa entrambe le cose. Il seguente comando non funziona.
pylab.matshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
si può suggerire un modo per tracciare una matrice confusione con xticks in cima dell'asse con rotazione verticale? Grazie.
EDIT
Grazie, Marco, per il vostro aiuto. Mi ha messo sulla strada giusta ispezionando le proprietà delle zecche più da vicino. L'unica differenza con la tua risposta e la mia risposta desiderata è l'applicazione di quell'idea ad un'AxesImage, non una trama. Dopo l'indagine, ecco la risposta:
im = pylab.matshow(confusion_matrix)
for label in im.axes.xaxis.get_ticklabels():
label.set_rotation(90)
im.figure.show()
Per coloro che leggono ... non dimenticare di show()! Ho dimenticato che avevo bisogno di aggiornare la figura. Vedi l'output qui sotto.
Confusion matrix with vertical labels. http://up.stevetjoa.com/rotate_ticklabels.png
Grazie per la vostra pronta risposta. Non ero chiaro Sto cercando di tracciare le etichette sopra l'intera figura. Ad esempio, pylab.matshow() esegue questa operazione, ma le etichette non possono essere ruotate. Sarebbe davvero bello ruotarli, perché rende tutto più leggibile, specialmente quando la matrice di confusione è grande. –
@Steve, vedere le modifiche sopra. – Mark