2015-11-16 11 views
10

Per impostazione predefinita, matplotlib posiziona le etichette della barra di colore accanto alle barre dei colori verticali. Qual è il modo migliore per forzare l'etichetta sopra una barra colori? Attualmente le mie esigenze di soluzioni di regolazione labelpad e y valori a seconda delle dimensioni dell'etichetta:Etichetta superiore per barre colorate matplotlib

import numpy as np 
import matplotlib.pylab as plt 

dat = np.random.randn(10,10) 
plt.imshow(dat, interpolation='none') 

clb = plt.colorbar() 
clb.set_label('label', labelpad=-40, y=1.05, rotation=0) 

plt.show() 

colorbar top label

C'è un modo migliore e più generico per fare questo?

risposta

16

È possibile impostare l'title dell'asse della barra dei colori (che appare sopra l'asse), anziché lo label (che appare lungo l'asse lungo). Per accedere al codice colore Axes, è possibile utilizzare clb.ax. È quindi possibile utilizzare set_title, allo stesso modo che è possibile per qualsiasi altra istanza di Axes.

Ad esempio:

import numpy as np 
import matplotlib.pylab as plt 

dat = np.random.randn(10,10) 
plt.imshow(dat, interpolation='none') 

clb = plt.colorbar() 
clb.ax.set_title('This is a title') 

plt.show() 

enter image description here

Problemi correlati