Подтвердить что ты не робот

Научная нотация colorbar в matplotlib

Я пытаюсь поместить colorbar к моему изображению, используя matplotlib. Проблема возникает, когда я пытаюсь заставить метки отмечать в научной нотации. Как я могу заставить научную нотацию (т.е. 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()

Когда я это сделаю, я получаю следующее изображение:

image created with the previous code

Однако, я хотел бы видеть метки метки в научной нотации... Есть ли какая-нибудь одна команда для этого? В противном случае, есть ли намек? Спасибо!

4b9b3361

Ответ 1

Вы можете использовать colorbar 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()

enter image description here

Ответ 2

Вы можете указать формат ярлыков colorbar следующим образом:

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