Multi_lineメソッドで作成された2行を含む図に凡例を追加しようとしています。例:
p = figure(plot_width=300, plot_height=300)
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend="first")
この場合、凡例は最初の行のみです。凡例がリストとして定義されている場合、エラーが発生します。
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend=["first","second"])
多くの行に凡例を追加することは可能ですか?
メンテナノート: PR#8218 これはBokeh 1.0でマージされ、複数行とパッチの凡例を直接作成できるようにします、ループしたり、個別のline
呼び出しを使用したりすることはありません。
_multi_line
_は、概念的に単一のものを対象としており、たまたま複数のサブコンポーネントがあります。テキサス州について考えてみてください。これは論理的なことの1つですが、いくつかの異なる(そして互いに素な)ポリゴンがあります。 Patches
を使用して「テキサス」のすべてのポリゴンを描画することもできますが、全体として1つの凡例のみが必要です。凡例は論理的なものにラベルを付けます。複数の線を論理的に異なるものとしてラベル付けする場合は、p.line(..., legend_label="...")
を使用してすべてを個別に描画する必要があります。
メンテナノート: PR#8218 これはBokeh 1.0でマージされ、複数行とパッチの凡例を直接作成できるようにします、ループなし。
あなたはいつでもあなたの色のボケパレットをインポートすることができます
bokeh.palettesから「あなたのパレット」をインポートします
このリンクを確認してください: bokeh.palets
colors_list = ['blue', 'yellow']
legends_list = ['first', 'second']
xs=[[4, 2, 5], [1, 3, 4]]
ys=[[6, 5, 2], [6, 5, 7]]
p = figure(plot_width=300, plot_height=300)
for (colr, leg, x, y ) in Zip(colors_list, legends_list, xs, ys):
my_plot = p.line(x, y, color= colr, legend= leg)
show(p)
最近のリリース(0.12.15以降)では、multi_lineプロットに凡例を追加することが可能です。データソースに「凡例」エントリを追加するだけです。これは、Googleグループディスカッションフォーラムから抜粋した例です。
data = {'xs': [np.arange(5) * 1, np.arange(5) * 2],
'ys': [np.ones(5) * 3, np.ones(5) * 4],
'labels': ['one', 'two']}
source = ColumnDataSource(data)
p = figure(width=600, height=300)
p.multi_line(xs='xs', ys='ys', legend='labels', source=source)