Pregunta

Al usar matplotlib con una trama de contorno, tengo problemas para que la barra de color se muestre como quiera. He leído numerosos ejemplos similares, pero aún no he podido obtener lo que quiero.

En la imagen a continuación, quiero que dos cosas cambiaran. Quiero que el valor mínimo y los valores máximos se muestren en la barra de color (el máximo debe ser 2.0 y el min -0.1). Estos dos valores deben estar en el borde de la barra de color. Además, quiero que la barra de color muestre el valor en cada transición de color. Por ejemplo. En el diagrama a continuación, entre 2.1 y 1.8, hay otra transición de color donde no se muestra el valor.

¿Alguien puede ayudarme por favor? Creo que es posible que necesite usar la norma, pero hasta ahora no ha funcionado para mí.

Gracias,

enter image description here

Código:

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()
¿Fue útil?

Solución

Si entiendo correctamente lo que quieres, creo que esto debería hacerlo:

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

enter image description here

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top