簡體   English   中英

從matplotlib中的給定色彩映射創建顏色生成器

[英]Create a color generator from given colormap in matplotlib

我有一系列的線條,每個線條需要用單獨的顏色繪制。 每條線實際上由幾個數據集(正面,負面區域等)組成,所以我希望能夠創建一個生成器,一次在一個光譜上提供一種顏色,例如這里顯示gist_rainbow地圖。

我發現了以下作品,但它看起來很復雜,更重要的是難以記住,

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地圖中的顏色范圍,我必須重新定義地圖。

也許發電機不是最好的方法,如果是這樣,接受的方式是什么?

要索引特定顏色映射的顏色,您可以使用:

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM