matplotlibの中で与えられたカラーマップからカラージェネレータを作成します。
-
26-09-2019 - |
質問
Iは、それぞれ必要が別の色でプロットすることが一連のラインを有しています。私はスペクトルにわたって一度に一つの色を供給しますジェネレータを作成できるようにしたいので、各ラインは、実際gist_rainbow
マップを示すのhref = "http://www.scipy.org/Cookbook/Matplotlib/Show_colormaps" のrel = "noreferrer">。
私は、次の作品を発見したが、それは
、非常に複雑で覚えて、より重要なのは難しいようです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