我有一个类似于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兼容的颜色格式的软件包。
答案 0 :(得分:0)
要从色标中选择一种颜色并将其用于绘图中,可以使用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
现在是一个字符串,可用于在绘图中选择颜色。