Comment modifier les labels d'une colorbar avec imshow sous matplotlib ?

Published: 27 avril 2015

DMCA.com Protection Status

Exemples de comment personnaliser les labels de la colorbar avec imshow de matplotib:

Colorbar de départ

Tracer une simple colorbar avec matplotlib:

Modifier les labels d'une colorbar avec imshow sous matplotlib
Modifier les labels d'une colorbar avec imshow sous matplotlib

import numpy as np
import matplotlib.pyplot as plt

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()

plt.savefig("ImshowColorBar01.png")

plt.show()

Modifier la taille des labels

Pour modifier la taille des labels on peut utiliser l'option labelsize, exemple diminuer la taille des labels labelsize=7:

Modifier les labels d'une colorbar avec imshow sous matplotlib
Modifier les labels d'une colorbar avec imshow sous matplotlib

import numpy as np
import matplotlib.pyplot as plt

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])

cb = plt.colorbar()

cb.ax.tick_params(labelsize=7)

plt.savefig("ImshowColorBar02.png")

plt.show()

Modifier la position des labels

Pour modifier la position des labels on peut utiliser l'argument ticks, exemple

Modifier les labels d'une colorbar avec imshow sous matplotlib
Modifier les labels d'une colorbar avec imshow sous matplotlib

import numpy as np
import matplotlib.pyplot as plt

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],vmin=z.min(),vmax=z.max())

v1 = np.linspace(z.min(), z.max(), 8, endpoint=True)
cb = plt.colorbar(ticks=v1)

plt.savefig("ImshowColorBar03.png")

plt.show()

Modifier le format des labels

On peut aussi changer le format des labels:

Modifier les labels d'une colorbar avec imshow sous matplotlib
Modifier les labels d'une colorbar avec imshow sous matplotlib

import numpy as np
import matplotlib.pyplot as plt

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)

f = plt.figure()
ax = f.add_subplot(111)

plt.imshow(z,extent=[-1,1,-1,1],vmin=z.min(),vmax=z.max())

v1 = np.linspace(z.min(), z.max(), 8, endpoint=True)
cb = plt.colorbar(ticks=v1)
cb.ax.set_yticklabels(["{:4.2f}".format(i) for i in v1])

plt.savefig("ImshowColorBar04.png")

Références

Image

of