matplotlibの中で与えられたカラーマップからカラージェネレータを作成します。

StackOverflow https://stackoverflow.com/questions/3016283

質問

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))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top