Я следую за documentation для создания пользовательской цветовой карты. На карте я хочу выглядеть следующим образом:пользовательская цветовая карта для pcolor
Вот словарь я придумал:
cdict = {'red': ((0.00, 0.0, 0.0),
(0.25, 1.0, 0.0),
(0.50, 0.0, 0.0),
(0.75, 1.0, 0.0),
(1.00, 1.0, 0.0)),
'green': ((0.00, 0.0, 0.0),
(0.25, 1.0, 1.0),
(0.50, 1.0, 1.0),
(0.75, 1.0, 1.0),
(1.00, 0.0, 0.0)),
'blue': ((0.00, 1.0, 1.0),
(0.25, 0.0, 0.0),
(1.00, 0.0, 0.0))
}
Но это не дает мне результаты, я хочу. Например, значение 0,5 отображается с использованием красного цвета.
Вот что остальная часть кода выглядит следующим образом:
cmap = LinearSegmentedColormap('bgr', cdict)
plt.register_cmap(cmap=cmap)
plt.pcolor(dist, cmap='bgr')
plt.yticks(np.arange(0.5, len(dist.index), 1), dist.index)
plt.xticks(np.arange(0.1, len(dist.columns), 1), dist.columns, rotation=40)
for y in range(dist.shape[0]):
for x in range(dist.shape[1]):
plt.text(x + 0.5, y + 0.5, dist.iloc[y,x],
horizontalalignment='center',
verticalalignment='center', rotate=90
)
plt.show()
Вот пример оказанной Тепловая карта:
Что мне не хватает?
О, я вижу, я получил карту цветное изображение неправильно. Нет, дикт прав, просто изображение должно быть зеркальным отражением того, что было. Я только что исправил это. Проблема в том, что значения .5 отображаются в красный, а не зеленый. И ссылка docs, которую вы указали, дает понять, что записи r, g, b не нужно выравнивать. В этом примере один из компонентов цвета имеет больше интервалов, чем другие. –