Exemple de comment mettre la barre de couleur (colorbar) en dessous avec matplotlib
Mettre la barre de couleur (colorbar) en dessous de la figure avec matplotlib
Avec matplotlib, pour mettre la barre de couleur (colorbar) en dessous de la figure le plus simple est d'utiliser l'argument orientation ="horizontal" dans la fonction matplotlib.pyplot.colorbar() (sources: 1 et 2), exemple:
#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
#----------------------------------------------------------------------------------------#
def f(x,y):
return (x+y)*np.exp(-5.0*(x**2+y**2))
x,y = np.mgrid[-1:1:100j, -1:1:100j]
z = f(x,y)
#----------------------------------------------------------------------------------------#
plt.imshow(z,extent=[-1,1,-1,1])
plt.colorbar(orientation="horizontal")
plt.title("Colorbar bottom position \n with matplotib")
plt.savefig('colorbar_positioning_01.png', format='png', bbox_inches='tight')
plt.show()
plt.close()
Ajuster la taille de la barre de couleur (colorbar) à la figure
Cependant la barre de couleur n'est généralement pas de la même taille. Pour réparer cela on peut utiliser la fonction make_axes_locatable (voir le précédant article intitulé: Adapter la taille de la colorbar au graphique (matplotlib)):
#!/usr/bin/env python
from mpl_toolkits.axes_grid1 import make_axes_locatable
import matplotlib.pyplot as plt
import numpy as np
#----------------------------------------------------------------------------------------#
def f(x,y):
return (x+y)*np.exp(-5.0*(x**2+y**2))
x,y = np.mgrid[-1:1:100j, -1:1:100j]
z = f(x,y)
#----------------------------------------------------------------------------------------#
fig, ax = plt.subplots(figsize=(4,4))
plt.title("Colorbar bottom position \n with matplotib")
im = plt.imshow(z,extent=[-1,1,-1,1])
divider = make_axes_locatable(ax)
cax = divider.new_vertical(size="5%", pad=0.5, pack_start=True)
fig.add_axes(cax)
fig.colorbar(im, cax=cax, orientation="horizontal")
plt.savefig('colorbar_positioning_03.png', format='png', bbox_inches='tight')
plt.show()
plt.close()
Note 01: pour modifier les labels sur la barre de couleur, voir l'article suivant: Modifier les labels d'une colorbar avec imshow sous matplotlib
Références
Liens | Site |
---|---|
Adapter la taille de la colorbar au graphique (matplotlib) | science-emergence.com |
Modifier les labels d'une colorbar avec imshow sous matplotlib | science-emergence.com |
positioning the colorbar | stackoverflow |
matplotlib.pyplot.colorbar | matplotlib.org |
colorbar_api | matplotlib.org |
Fix your matplotlib colorbars! | joseph-long.com |