Question

Lors de l'utilisation matplotlib avec un tracé de contour, je vais avoir du mal à obtenir l'colorbar à l'affichage que je veux. Je l'ai lu de nombreux exemples similaires, mais ont toujours pas été en mesure d'obtenir ce que je veux.

Dans l'image ci-dessous, je veux deux choses ont changé. Je veux que la valeur minimale et les valeurs maximales à afficher sur la barre de couleur (maximum devrait être de 2,0 et min -0,1). Ces deux valeurs doivent être au bord de la colorbar. Aussi, je veux le colorbar pour afficher la valeur à chaque transition de couleur. Par exemple. dans le tracé ci-dessous, entre 2,1 et 1,8, il y a une autre transition de couleur où la valeur est affichée.

Quelqu'un peut-il me aider s'il vous plaît? Je pense que je peux avoir besoin d'utiliser la norme, mais il n'a pas fonctionné pour moi jusqu'à présent.

Merci,

entrer image description ici

Code:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)
plt.colorbar()
plt.show()
Était-ce utile?

La solution

Si je comprends bien ce que vous voulez, je pense que cela devrait le faire:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

v = np.linspace(-.1, 2.0, 15, endpoint=True)
plt.contour(xi, yi, zi, v, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, v, cmap=plt.cm.jet)
x = plt.colorbar(ticks=v)
print x
plt.show()

entrer image description ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top