contourf colorbar python
Notación cientÃfica colorbar en matplotlib (2)
Estoy tratando de poner una barra de colores a mi imagen usando matplotlib. El problema viene cuando trato de forzar que los ticklabels se escriban en notación científica. ¿Cómo puedo forzar la notación científica (es decir, 1x10 ^ 0, 2x10 ^ 0, ..., 1x10 ^ 2, etc.) en las marcas de la barra de color?
Ejemplo, vamos a crear y trazar una imagen con su barra de color:
import matplotlib as plot
import numpy as np
img = np.random.randn(300,300)
myplot = plt.imshow(img)
plt.colorbar(myplot)
plt.show()
Cuando hago esto, me sale la siguiente imagen:
Sin embargo, me gustaría ver los ticklabels en notación científica ... ¿Hay algún comando de una línea para hacer esto? De lo contrario, ¿hay alguna pista por ahí? ¡Gracias!
Podrías usar el parámetro de format
colorbar
de colorbar
:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as ticker
img = np.random.randn(300,300)
myplot = plt.imshow(img)
def fmt(x, pos):
a, b = ''{:.2e}''.format(x).split(''e'')
b = int(b)
return r''${} /times 10^{{{}}}$''.format(a, b)
plt.colorbar(myplot, format=ticker.FuncFormatter(fmt))
plt.show()
Puede especificar el formato de las marcas de la barra de color de la siguiente manera:
pl.colorbar(myplot, format=''%.0e'')