【问题标题】:Getting individual colors from a color scale from colorlover in python从python中的colorlover的色标中获取单个颜色
【发布时间】:2019-05-08 12:15:43
【问题描述】:

我有一个类似于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 兼容的颜色格式的包。

【问题讨论】:

    标签: python colors plotly data-visualization


    【解决方案1】:

    要从色阶中选择一种颜色并在 plotly 中使用,您可以使用matplotlib colormap 选择一种颜色,然后将该颜色转换为 plotly 所需的 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 颜色,但它的 plotly 格式错误。 Plotly 需要格式 'rgb(254, 254, 190)'。这可以通过将元组中的上述元素乘以255然后转换为字符串来实现。

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

    rgba 现在是一个字符串,可用于在 plotly 中选择颜色。

    【讨论】:

      猜你喜欢
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      相关资源
      最近更新 更多