web-dev-qa-db-fra.com

Étiquette supérieure pour les barres de couleur matplotlib

Par défaut, matplotlib positionnerait les étiquettes des barres de couleurs à côté des barres de couleurs verticales. Quelle est la meilleure façon de forcer l'étiquette à se trouver au-dessus d'une barre de couleur? Actuellement, ma solution doit ajuster les valeurs de labelpad et y en fonction de la taille de l'étiquette:

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

Existe-t-il une meilleure façon, plus générique, de procéder?

24
Vlas Sokolov

Vous pouvez définir le title de l'axe de la barre de couleur (qui apparaît au-dessus de l'axe), plutôt que le label (qui apparaît le long de l'axe long). Pour accéder au Axes de la barre de couleurs, vous pouvez utiliser clb.ax. Vous pouvez ensuite utiliser set_title , de la même manière que pour toute autre instance Axes.

Par exemple:

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

38
tmdavison