我有一系列线条,每条线条都需要用单独的颜色绘制。每条线实际上由多个数据集(正区域、负区域等)组成,因此我希望能够创建一个生成器,在整个光谱中一次提供一种颜色,例如 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归因
不隶属于 StackOverflow
scroll top