color bar python matplotlib scientific-notation colorbar

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