Пользовательская цветовая карта - PullRequest
0 голосов
/ 03 октября 2018

Я хочу построить тепловую карту с пользовательской цветовой картой , аналогичной этой, но не совсем.

enter image description here

IХотелось бы иметь цветовую карту, которая выглядит следующим образом.В интервале [-0,6, 0,6] цвет светло-серый.Выше 0,6 красный цвет усиливается.Ниже -0,6 другой цвет, скажем синий, усиливается.

Как я могу создать такую ​​цветовую карту, используя python и matplotlib?

Что у меня есть до сих пор: В seaborn есть команда seaborn.diverging_palette(220, 10, as_cmap=True), которая создает цветовую карту, идущую от синего до серо-красного.Но по-прежнему нет отрыва от [-0,6, 0,6].

enter image description here

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вы можете импортировать colorchooser из Tkinter:

from tkinter.colorchooser import askcolor

(triple, hexstring) = askcolor()

поэкспериментируйте с этим:)

0 голосов
/ 03 октября 2018

Цветовые карты нормализуются в диапазоне 0..1.Таким образом, если ваши пределы данных -1,1, -0,6 будет нормализовано до 0,2, +0,6 будет нормализовано до 0,8.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors

norm = matplotlib.colors.Normalize(-1,1)
colors = [[norm(-1.0), "darkblue"],
          [norm(-0.6), "lightgrey"],
          [norm( 0.6), "lightgrey"],
          [norm( 1.0), "red"]]

cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)


fig, ax=plt.subplots()
x = np.arange(10)
y = np.linspace(-1,1,10)
sc = ax.scatter(x,y, c=y, norm=norm, cmap=cmap)
fig.colorbar(sc, orientation="horizontal")
plt.show()

enter image description here

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