从python中的colorlover中的色标中获取单个颜色

时间:2019-05-08 12:15:44

标签: python colors plotly data-visualization

我有一个类似于this post的问题,但它是针对另一个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值或与plotly兼容的颜色格式的软件包。

1 个答案:

答案 0 :(得分:0)

要从色标中选择一种颜色并将其用于绘图中,可以使用matplotlib colormap选择一种颜色,然后将该颜色转换为绘图中所需的rgb格式。

For example

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现在是一个字符串,可用于在绘图中选择颜色。