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

Морской цвет color_palette как matplotlib colormap

Seaborn предлагает функцию color_palette, которая позволяет вам легко создавать новые color_palettes для графиков.

colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"]

color_palette = sns.color_palette(colors)

Я хочу преобразовать color_palette в cmap, который я могу использовать в matplotlib, но я не вижу, как это сделать.

К сожалению, просто такие функции, как "cubehelix_palette", "light_palette",... имеют параметр "as_cmap". "color_palette", к сожалению, не работает.

4b9b3361

Ответ 1

Вам необходимо преобразовать список цветов из палитры парусных птиц в цветную карту matplolib (спасибо to @RafaelLopes для предлагаемых изменений):

import seaborn as sns
import matplotlib.pylab as plt
import numpy as np
from matplotlib.colors import ListedColormap

# construct cmap
flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
my_cmap = ListedColormap(sns.color_palette(flatui).as_hex())

N = 500
data1 = np.random.randn(N)
data2 = np.random.randn(N)
colors = np.linspace(0,1,N)
plt.scatter(data1, data2, c=colors, cmap=my_cmap)
plt.colorbar()
plt.show()

введите описание изображения здесь

Ответ 2

У большинства методов создания цветовых палитр у морского транспорта есть необязательный аргумент as_cmap, который по умолчанию равен False. Вы можете использовать для непосредственного получения цветовой карты Matplotlib:

import seaborn as sns
import matplotlib.pylab as plt
import numpy as np

# construct cmap
my_cmap = sns.light_palette("Navy", as_cmap=True)

N = 500
data1 = np.random.randn(N)
data2 = np.random.randn(N)
colors = np.linspace(0,1,N)
plt.scatter(data1, data2, c=colors, cmap=my_cmap)
plt.colorbar()
plt.show()

введите описание изображения здесь

Ответ 3

Первый ответ является каким-то правильным, но слишком длинным с большим количеством ненужной информации. Правильный и короткий ответ:

Для преобразования любого sns.color_palette() в совместимый с matplotlib cmap вам нужны две строки кода

from matplotlib.colors import ListedColormap
cmap = ListedColormap(sns.color_palette())

Ответ 4

Просто добавьте подсказку - если вам нужен непрерывный colorbar/colormap, добавив 256, поскольку количество цветов, требуемых от Seaborn colorscheme, очень помогает.

cmap = ListedColormap(sns.color_palette("Spectral",256))