Notación científica colorbar en matplotlib

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, 1×10 ^ 0, 2×10 ^ 0, …, 1×10 ^ 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:

Imagen creada con el código anterior.

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

introduzca la descripción de la imagen aquí

Puede especificar el formato de las marcas de la barra de color de la siguiente manera:

 pl.colorbar(myplot, format='%.0e')