【问题标题】:Create a color generator from given colormap in matplotlib从 matplotlib 中的给定颜色图创建颜色生成器
【发布时间】:2010-06-10 16:18:14
【问题描述】:

我有一系列线,每条线都需要用单独的颜色绘制。每条线实际上由几个数据集(正、负区域等)组成,因此我希望能够创建一个生成器,该生成器将在整个光谱中一次提供一种颜色,例如 gist_rainbow 地图shown here.

我找到了以下作品,但看起来很复杂,更重要的是很难记住,

from pylab import *

NUM_COLORS = 22

mp = cm.datad['gist_rainbow']
get_color = matplotlib.colors.LinearSegmentedColormap.from_list(mp, colors=['r', 'b'], N=NUM_COLORS)
...
# Then in a for loop
    this_color = get_color(float(i)/NUM_COLORS)

而且,它没有覆盖gist_rainbow地图中的颜色范围,我必须重新定义一个地图。

也许生成器不是做到这一点的最佳方式,如果是这样,那么公认的方式是什么?

【问题讨论】:

    标签: python matplotlib color-mapping


    【解决方案1】:

    要索引特定颜色图中的颜色,您可以使用:

    import pylab
    NUM_COLORS = 22
    
    cm = pylab.get_cmap('gist_rainbow')
    for i in range(NUM_COLORS):
        color = cm(1.*i/NUM_COLORS)  # color will now be an RGBA tuple
    
    # or if you really want a generator:
    cgen = (cm(1.*i/NUM_COLORS) for i in range(NUM_COLORS))
    

    【讨论】:

    • :你好,我想问你如何在我的程序中使用它。我有例如具有整数值的单元格(空=0,满=1..)。我该怎么做“空”对应于颜色“红色”,全色对应于白色等。我有一个函数可以在其中制作情节“....im=plt.imshow(mydata,cmap=plt.get_cmap('gist_earth') )" 。我必须如何实现上述内容?(如果我们说同样的话)。谢谢!
    • @George:正如你所描述的,我不确定为什么这对你不起作用。也许用一个小例子发布一个完整的问题。
    • :如果你可以在这里查看stackoverflow.com/questions/8929456/…(在更新的部分)我在哪里创建图表。我怎样才能实现你的例子?(如果你坚持我会发布一个新的答案)谢谢!
    • 也许是一个新帖子.. 我真的不明白。不过我想知道,也许你想使用 vmin 和 vmax 来保持你的颜色条范围在不同的地块之间固定?例如,在这里查看我的答案:stackoverflow.com/questions/3373256/…
    • :好的,我明天检查一下。也许是这样。否则,我会发一个新帖子告诉你。谢谢!
    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2021-11-01
    相关资源
    最近更新 更多