J'essaie de mettre une barre de couleur sur mon image en utilisant matplotlib. Le problème survient lorsque j'essaie de forcer les étiquettes à écrire en notation scientifique. Comment puis-je forcer la notation scientifique (c.-à-d. 1x10 ^ 0, 2x10 ^ 0, ..., 1x10 ^ 2, etc.) dans les graduations de la barre de couleur?
Exemple, créons et traçons et imageons avec sa barre de couleur:
import matplotlib as plot
import numpy as np
img = np.random.randn(300,300)
myplot = plt.imshow(img)
plt.colorbar(myplot)
plt.show()
Lorsque je fais cela, j'obtiens l'image suivante:
Cependant, je voudrais voir les ticklabels en notation scientifique ... Y a-t-il une commande d'une ligne pour ce faire? Sinon, y a-t-il un indice? Merci!
Vous pouvez utiliser colorbar
paramètre format
:
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()
Vous pouvez spécifier le format des graduations de la barre de couleur comme suit:
pl.colorbar(myplot, format='%.0e')