Sto usando matplotlib per generare un grafico a barre (verticale). Il problema è che le mie etichette sono piuttosto lunghe. C'è un modo per visualizzarli in verticale, sia nella barra o sopra o sotto di esso?Barchart con etichette verticali in python/matplotlib
risposta
Vuoi dire qualcosa di simile:
>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
?
In generale, per visualizzare qualsiasi testo in matplotlib con orientamento verticale, è possibile aggiungere la parola chiave rotation='vertical'
.
Per ulteriori opzioni, si può guardare aiuto (matplotlib.pyplot.text)
La funzione yticks trame le zecche sull'asse y; Non sono sicuro che tu intendessi originariamente questa o la funzione ylabel, ma la procedura è sempre la stessa, devi aggiungere rotazione = 'verticale'
Forse potresti anche trovare utili le opzioni 'verticalalignment' e 'horizontalalignment' , che ti permette di definire come allineare il testo rispetto ai tick o agli altri elementi.
Suggerisco di guardare the matplotlib gallery. Almeno due degli esempi sembrano essere rilevanti:
- text_rotation.py per capire come funziona il layout del testo
- barchart_demo2.py, un esempio di un grafico a barre con il layout un po 'più complicata di quanto l'esempio più semplice.
In Jupyter Notebook si potrebbe usare qualcosa di simile
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())
oppure è possibile utilizzare:
plt.xticks(rotation=90)
Si noti che non sto usando plot(); ma bar(). Ma la rotazione = "verticale" sembra essere la chiave. Tuttavia, questo ancora non disegna i segni di spunta nelle barre. – phihag
Intendi le zecche nell'asse xy? Dai un'occhiata alla funzione di griglia. Per esempio grid (ls = '', marker = 'v'). griglia() controlla il tracciamento della griglia sull'asse xy; con l'opzione marker si definisce lo stile per i marker tick e con ls = '' si ottiene una griglia invisibile. – dalloliogm
@dalloliogm suona bene – phihag