2017-12-19 21 views
0

私のBokehバージョンは0.12.13とPython 3.6.0です https://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html ここで使用できるサンプルコードを変更しました:私はちょうど余分なyの範囲を追加しようとしました。Bokehがここで余分な範囲を生成しないのはなぜですか?

from bokeh.plotting import output_file, figure, show 
from bokeh.models import LinearAxis, Range1d 

x = [1,2,3,4,5] 
y = [1,2,3,4,5] 
y2 = [10,9,8,7,6] 
y3 = [23,24,25,26,27] 

output_file("twin_axis.html") 

p = figure(x_range=(0,6), y_range=(0,6)) 

p.circle(x, y, color="red") 

p.extra_y_ranges = {"foo1": Range1d(start=0, end=11)} 
p.circle(x, y2, color="blue", y_range_name="foo1") 
p.add_layout(LinearAxis(y_range_name="foo1"), 'left') 

p.extra_y_ranges = {"foo2": Range1d(start=21, end=31)} 
p.circle(x, y3, color="green", y_range_name="foo2") 
p.add_layout(LinearAxis(y_range_name="foo2"), 'right') 

p.toolbar_location ="above" 
show(p) 

元のコードはうまく動作しますが、変更されたコードは機能しません。私は何をしているのか理解できません。私はボケに少し慣れていますので、正しい方向に案内してください。 EDIT:3番目のy軸を追加すると出力がありません。しかし、それは左側の2つの軸だけで動作します。

+0

誰もが閉じるために投票し、なぜわからないが、これは完全に合理的な質問です。 – bigreddot

答えて

1

問題は、あなたが、あなたは完全に、に古いものをp.extra_y_rangesに新しい辞書を再割り当てすることにより、別のY-範囲—を追加ない交換することです。これは、追加する軸が"foo1"の範囲が存在すると予想しているが、吹き飛ばすと問題が発生します。次のコードは期待通りに動作します:

from bokeh.plotting import output_file, figure, show 
from bokeh.models import LinearAxis, Range1d 

x = [1,2,3,4,5] 
y = [1,2,3,4,5] 
y2 = [10,9,8,7,6] 
y3 = [23,24,25,26,27] 

output_file("twin_axis.html") 

p = figure(x_range=(0,6), y_range=(0,6)) 

p.circle(x, y, color="red") 

p.extra_y_ranges = {"foo1": Range1d(start=0, end=11)} 
p.circle(x, y2, color="blue", y_range_name="foo1") 
p.add_layout(LinearAxis(y_range_name="foo1"), 'left') 

# CHANGES HERE: add to dict, don't replace entire dict 
p.extra_y_ranges["foo2"] = Range1d(start=21, end=31) 

p.circle(x, y3, color="green", y_range_name="foo2") 
p.add_layout(LinearAxis(y_range_name="foo2"), 'right') 

p.toolbar_location ="above" 
show(p) 

enter image description here

+0

ああ!今、私は基本を理解しました。ありがとうございました。そしてBokehを開発してくれてありがとう。大好き。 – revoltman

+0

あなたがアップヴォートすることができ、そして/またはマークすることもできますが、それはまた評価される:D – bigreddot

+0

私の "評判"の欠如のためアップアップはありませんが、それが正しいとマーク。 Thnx。 – revoltman

関連する問題