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