ボケでプロットするとき、どのようにしてカラーパレットを自動的に循環させますか?



When Plotting With Bokeh



解決:

色のリストを取得し、それを使用して自分で循環させるのがおそらく最も簡単ですitertools:

import numpy as np from bokeh.ploting import figure、output_file、show#bokeh.palettesからパレットを選択import Dark2_5 asパレット#itertoolsはサイクリングを処理しますimport itertools output_file( 'bokeh_cycle_colors.html')p = figure(width = 400、height = 400)x = np.linspace(0、10)#カラーイテレーターを作成しますcolors = itertools.cycle(palette)for m、color in zip(range(10)、colors):y = m * x p.line( x、y、legend = 'm = {}'。format(m)、color = color)p.legend.location = 'top_left' show(p)

ここに画像の説明を入力してください




2つの小さな変更により、Python3の事前回答が機能します。

  • かわった:mの場合、zip(range(10)、colors)の色:



  • 前:mの場合、itertools.izip(xrange(10)、colors)の色:


色を循環させる単純なジェネレーターを定義できます。

Python 3の場合:



from bokeh.palettes import Category10 import itertools def color_gen():yield from itertools.cycle(Category10 [10])color = color_gen()

またはPython2(または3)の場合:

from bokeh.palettes import Category10 import itertools def color_gen():for c in itertools.cycle(Category10 [10]):yield c color = color_gen()

新しい色が必要な場合は、次のようにします。

p.line(x、y1、line_width = 2、color = color)p.line(x、y2、line_width = 2、color = color)

上記の例は次のとおりです。

p = figure(width = 400、height = 400)x = np.linspace(0、10)for m、c in zip(range(10)、color):y = m * x p.line(x、y、 legend = 'm = {}'。format(m)、color = c)p.legend.location = 'top_left' show(p)

ここに画像の説明を入力してください