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