2017-01-10 2 views
1

私はそれに個々の行がたくさんあるボケ・チャートを作成しようとしていますが、正確には14です(私の考えではなく、このようにします)。問題は、要求された書式設定がチャートの下部に沿って水平な凡例を持っていて、それが長すぎるために2行にする必要があるため、これを行う方法がわかりません。誰かがこの前に取り組まなければならなかったことを願っています。ボケ・プロットで2行の凡例を作成する

1行の凡例を含む現在のコード。ボケ0.12.4のよう

#graph data to chart 
r0 = p1.line(data['Time'], data['Signal 1'], line_color="MediumBlue") 
r1 = p1.line(data['Time'], data['Signal 2'], line_color="MidnightBlue") 
r2 = p1.line(data['Time'], data['Signal 3'], line_color="red", y_range_name="Temp") 
r3 = p1.line(data['Time'], data['Signal 4']*10, line_color="gray", y_range_name="Temp") 
r4 = p1.line(data['Time'], data['Signal 5']*3.281, line_color="gold") 
r5 = p1.line(data['Time'], data['Signal 6'], line_color="brown", y_range_name="Temp") 
r6 = p1.line(data['Time'], data['Signal 7'], line_color="tomato", y_range_name="Temp") 
r7 = p1.line(data['Time'], data['Signal 8'], line_color="blue", line_dash="4 4", y_range_name="Temp") 
r8 = p1.line(data['Time'], data['Signal 9'], line_color="cyan", y_range_name="Temp") 
r9 = p1.line(data['Time'], data['Signal 10']*57.3, line_color="plum", y_range_name="Temp") 
r10 = p1.line(data['Time'], data['Signal 11']*1.94, line_color="green", y_range_name="Temp") 

#create html file 
output_file("Engine_Disp_Test.html", title="Engine Disp Test") 

#Configure Legend 
legend=Legend(items=[ 
        ("Signal 1" , [r0]), 
       ("Signal 2" , [r1]), 
       ("Signal 3" , [r2]), 
       ("Signal 4" , [r3]), 
       ("Signal 5", [r4]), 
       ("Signal 6", [r5]), 
       ("Signal 7", [r6]), 
       ("Signal 8", [r7]), 
       ("Signal 9", [r8]), 
       ("Signal 10", [r9]), 
       ("Signal 11", [r10]) 
       ], location=(70,-10), orientation="horizontal") 

答えて

0

自動的に複数の行(または列)に伝説を分割できるようになるものは何もありません。しかし、あなたは2つの伝説を加えることでそれを回避することができます。下の凡例がそれ以外の場合は断ち切られているように見えるので、私は位置を微調整してmin_border_bottom値を追加したことに注意してください。素晴らしい仕事

from bokeh.io import output_file, show 
from bokeh.models import Legend 
from bokeh.plotting import figure 

p = figure(min_border_bottom=130) 

r1 = p.line(x=[0, 1], y=1, line_width=2, color="red") 
r2 = p.line(x=[0, 1], y=2, line_width=2, color="blue") 
r3 = p.line(x=[0, 1], y=3, line_width=2, color="green") 
r4 = p.line(x=[0, 1], y=4, line_width=2, color="orange") 

legend1 = Legend([items=[("r1" , [r1]), ("r2", [r2])], 
       location=(70,20), orientation="horizontal") 

legend2 = Legend(items=[("r3" , [r3]), ("r4", [r4])], 
       location=(70,10), orientation="horizontal") 

p.add_layout(legend1, 'below') 
p.add_layout(legend2, 'below') 

output_file("foo.html") 

show(p) 

enter image description here

+0

!助けてくれてありがとう。 – BikeControl

関連する問題