Тики не отображаются правильно на цветовой панели - PullRequest
1 голос
/ 08 мая 2019

Со следующим кодом:

import matplotlib.cm as cm
from matplotlib import colors
import matplotlib.pyplot as plt

colormap = cm.YlOrRd

norm = colors.LogNorm(vmin=100, vmax=10000)
sm = plt.cm.ScalarMappable(cmap=colormap, norm=norm)
sm.set_array([])
cb = plt.colorbar(sm, ticks = [1,10,100,1000,10000,100000]) 
plt.show()

Я бы ожидал, что тики будут "100 1000 10000", но вместо этого я вижу силы 10 вместо.Как мне это исправить?

Ответы [ 2 ]

1 голос
/ 08 мая 2019

ну, есть способ

cb = plt.colorbar(sm, ticks = [1,10,100,1000,10000,100000], format='%.0f') 

, который снимает 10 ^ m нотацию, вам просто нужно уточнить формат

format='%.0f'
0 голосов
/ 08 мая 2019

Ваш vmin равен 100, но вы устанавливаете тик на 1 и 10. vmax равен 10000, но самый высокий тик на 100000. Я исправил значения тиков, чтобы они соответствовали желаемой цветовой шкале.

Хотя использование format является лучшим решением, альтернативным способом может быть следующий

tick_list = [100,1000,10000]
cb = plt.colorbar(sm, ticks = tick_list)
cb.set_ticklabels(list(map(str, tick_list)))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...