Научная нотация colorbar в matplotlib
Я пытаюсь поместить цветовую панель в мое изображение с помощью matplotlib. Проблема возникает, когда я пытаюсь заставить ticklabels быть написанными в научной нотации. Как я могу заставить научную нотацию (т. е. 1x10^0, 2x10^0,..., 1x10^2 и т. д.) в ТИКах цветовой полосы?
пример, давайте создадим и построим и изображение с его цветовой полосой:
import matplotlib as plot
import numpy as np
img = np.random.randn(300,300)
myplot = plt.imshow(img)
plt.colorbar(myplot)
plt.show()
когда я это делаю, я получаю следующее изображение:
однако, я хотел бы видеть в ticklabels в научной нотации... Есть ли какая-нибудь команда для этого? В противном случае, есть ли какой-либо намек? Спасибо!
2 ответов
можно использовать colorbar
' s 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()
вы можете указать формат тиков цветовой панели следующим образом:
pl.colorbar(myplot, format='%.0e')