Получение отдельных цветов из цветовой гаммы из colorlover в python - PullRequest
0 голосов
/ 08 мая 2019

У меня есть вопрос, похожий на в этом посте , но это для другой библиотеки, colorlover .Я хотел бы создать цветовую шкалу, а затем вытянуть определенный цвет из этой шкалы.

Например,

    import colorlover as cl
    color_scale = cl.scales['3']['div']['Spectral']
    color_scale
    >['rgb(252,141,89)', 'rgb(255,255,191)', 'rgb(153,213,148)']

Затем я хотел бы найти цвет на уровне 75% отмасштабировать с чем-то похожим на

color_scale(0.75)

, что в идеале вернул бы значение rgb для этого цвета.

Я также открыт для использования любого другого пакета, который будет возвращать значение rgb или цветформат, совместимый с плотностью.

1 Ответ

0 голосов
/ 08 мая 2019

Чтобы выбрать один цвет из цветовой шкалы и использовать его в виде графика, вы можете использовать matplotlib colormap , чтобы выбрать цвет, а затем преобразовать цвет в формат rgb, который требуется для графика.

Например ,

import matplotlib

#Generate a color scale
cmap = matplotlib.cm.get_cmap('Spectral')

#Select the color 75% of the way through the colorscale   
rgba = cmap(0.75)

#This produces an rgb format between 0 and 1
print(rgba) # (0.5273356401384084, 0.8106113033448674, 0.6452133794694349, 1.0)

(Если это дает ошибку, module 'matplotlib' has no attribute 'cm', попробуйте вместо этого:)

import matplotlib.pyplot as plt
cmap = plt.cm.get_cmap('Spectral')
rgba = cmap(0.75)
print(rgba) # (0.5273356401384084, 0.8106113033448674, 0.6452133794694349, 1.0)

Теперь у нас есть цвет RGB, но он имеет неправильный формат для сюжета. Полностью требуется формат 'rgb(254, 254, 190)'. Это может быть достигнуто путем умножения вышеуказанных элементов в кортеже на 255 и последующего преобразования в строку.

rgba = tuple(int((255*x)) for x in rgba[0:3])
rgba = 'rgb'+str(line_color)
print(rgba) #'rgb(134, 206, 165)'

rgba теперь является строкой, которую можно использовать для точного выбора цвета.

...