代码之家  ›  专栏  ›  技术社区  ›  piRSquared

使用matplotlib颜色映射进行颜色查找

  •  1
  • piRSquared  · 技术社区  · 8 年前

    我需要从颜色映射中查找任意数字的RGB值。

    假设我有彩色地图 'spring'

    from matplotlib import cm
    
    c = cm.get_cmap('spring')
    

    现在假设我有一个 0 1 ,我想从中提取RGB值 c

    import numpy as np
    
    np.random.seed([3, 1415])
    v = np.random.rand(1)
    
    v
    
    0.4449393091533107
    

    如何映射以获得相应的RGB?

    如果我看着

    c._segmentdata
    
    {'blue': ((0.0, 1.0, 1.0), (1.0, 0.0, 0.0)),
     'green': ((0.0, 0.0, 0.0), (1.0, 1.0, 1.0)),
     'red': ((0.0, 1.0, 1.0), (1.0, 1.0, 1.0))}
    

    …我不知该怎么办。

    我查过这个链接 https://matplotlib.org/users/colormapnorms.html

    但这告诉我如何对整个二维矩阵进行处理。

    1 回复  |  直到 8 年前
        1
  •  2
  •   sacuL    8 年前

    除非我误解了您的要求,否则您可以执行以下操作:

    c(v[0])
    

    这将为您提供以下信息 RGBA 数组:

    (1.0, 0.44313725490196076, 0.55686274509803924, 1.0)
    

    所以如果你只想 RGB ,您可以根据需要对其进行索引:

    >>> c(v[0])[:3]
    (1.0, 0.44313725490196076, 0.55686274509803924)
    

    更多信息 docs