78

次の問題があります。-2 と +2 の間の値にマップする独自のカラーマップ (red-mix-violet-mix-blue) を作成し、それを使用してプロット内のポイントに色を付けたいと考えています。プロットのカラースケールは右側になります。

それが今までの地図の作り方です。しかし、色が混ざっているかどうかはよくわかりません。

cmap = matplotlib.colors.ListedColormap(["red","violet","blue"], name='from_list', N=None)
m = cm.ScalarMappable(norm=norm, cmap=cmap)


このようにして、色を値にマッピングします。

colors = itertools.cycle([m.to_rgba(1.22), ..])


それから私はそれをプロットします:

for i in range(0, len(array_dg)):
  plt.plot(array_dg[i], markers.next(),alpha=alpha[i], c=colors.next())


私の問題は次のとおり
です。 1. カラー スケールをプロットできません。
2. スケールが連続した (滑らかな) カラースケールを作成しているかどうか完全にはわかりません。

4

4 に答える 4

14

表面プロットに一般的に使用されるカスタム発散カラーマップの作成を自動化したい場合は、このモジュールを @unutbu メソッドと組み合わせるとうまくいきました。

def diverge_map(high=(0.565, 0.392, 0.173), low=(0.094, 0.310, 0.635)):
    '''
    low and high are colors that will be used for the two
    ends of the spectrum. they can be either color strings
    or rgb color tuples
    '''
    c = mcolors.ColorConverter().to_rgb
    if isinstance(low, basestring): low = c(low)
    if isinstance(high, basestring): high = c(high)
    return make_colormap([low, c('white'), 0.5, c('white'), high])

高値と低値は、文字列の色の名前または RGB タプルのいずれかです。これは、サーフェス プロット デモを使用した結果です。 ここに画像の説明を入力

于 2015-06-07T01:43:52.750 に答える