2016-05-18 5 views
0

私は以下のコードを試してみた:matplotlibで20種類以上の色を与えることができるカラーマップを設定するには?

number = 20 
cmap = plt.get_cmap('gist_rainbow') 
colors = [cmap(i) for i in np.linspace(0, 1, number)] 

これは非常に異なった色のセットを生成することはできませんが。実際、最も近いプロットはほとんど同じ色です。私はhttp://matplotlib.org/examples/color/colormaps_reference.htmlに従って'jet''nipy_spectral'を試しました。しかし、彼らはそれほど満足のいくものではありません。

誰でも手伝ってもらえますか?

答えて

1

matplotlib cmapから色を抽出する代わりに、HLS色空間を使用していくつかの異なる色を生成することができます。

特に、異なる色は、異なる色相に依存します。

from colorsys import hls_to_rgb 
import numpy as np 

def get_distinct_colors(n): 

    colors = [] 

    for i in np.arange(0., 360., 360./n): 
     h = i/360. 
     l = (50 + np.random.rand() * 10)/100. 
     s = (90 + np.random.rand() * 10)/100. 
     colors.append(hls_to_rgb(h, l, s)) 

    return colors 
+0

あなたのソリューションはmatplotlib cmapよりも優れていますが、ほとんど同じ色になります。これを避ける方法は? –

関連する問題