Imshow avec deux colorbars sous matplotlib


Exemple de comment avoir une figure matplotlib avec deux colorbars (exemple inspiré du code source suivant)

Two colorbars Imshow matplotlib

On a ici de plus ajusté la taille de la colorbar à la figure (voir)

from mpl_toolkits.axes_grid1 import make_axes_locatable
from numpy.ma import masked_array

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm

v1 = -1+2*np.random.rand(20,20)

v1a = masked_array(v1,v1<0)
v1b = masked_array(v1,v1>=0)

fig,ax = plt.subplots()

pa = ax.imshow(v1a,interpolation='nearest',cmap=cm.Reds)
pb = ax.imshow(v1b,interpolation='nearest',cmap=cm.winter)

plt.xlabel('Day')
plt.ylabel('Depth')
plt.title('Matplotlib imshow with two colormaps')

divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.3)
cba = plt.colorbar(pa, cax=cax)

cax = divider.append_axes("right", size="5%", pad=1.0)
cbb = plt.colorbar(pb, cax=cax)

cba.set_label('positive')
cbb.set_label('negative')

plt.savefig("matplotlib_two_colormaps.png", bbox_inches='tight')
plt.show()

Références

Image

of