从matplotlib中的给定颜色映射创建颜色生成器

2024-05-19 15:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一系列的线,每一条都需要用不同的颜色画出来。每一行实际上由几个数据集(正、负区域等)组成,因此我希望能够创建一个生成器,在一个光谱中一次提供一种颜色,例如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地图中的颜色范围,我必须重新定义地图。

也许发电机不是最好的方法,如果是这样的话,什么是公认的方法?


Tags: 数据方法from区域get颜色地图光谱
1条回答
网友
1楼 · 发布于 2024-05-19 15:53:33

要从特定颜色映射索引颜色,可以使用:

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

相关问题 更多 >