2016-09-07 7 views
1

同じ図に散布図と(基底)線が必要です。そして、私はHoverToolを散布図の円でのみ使用したいが、その行には使用しない。出来ますか?Python bokehは、モデル上にのみhovertoolsを適用します。

以下のコードでは、行(任意の行の一部)にカーソルを合わせるとindex: 0(x, y): (???, ???)のツールチップが表示されます。しかしsourceindex: 0データが...((x, y): (1, 2))全く異なる

df = pd.DataFrame({'a':[1, 3, 6, 9], 'b':[2, 3, 5, 8]}) 

from bokeh.models import HoverTool 
import bokeh.plotting as bplt 

TOOLS = ['box_zoom', 'box_select', 'wheel_zoom', 'reset', 'pan', 'resize', 'save'] 

source = bplt.ColumnDataSource(data=df) 
hover = HoverTool(tooltips=[("index", "$index"), ("(x, y)", "(@a, @b)")]) 

p = bplt.figure(plot_width=600, plot_height=600, tools=TOOLS+[hover], 
    title="My sample bokeh plot", webgl=True) 

p.circle('a', 'b', size=10, source=source) 

p.line([0, 10], [0, 10], color='red') 

bplt.save(p, 'c:/_teszt.html') 

ありがとう!!

答えて

4

あなたはHoverToolがあなたのHoverToolがでアクティブにしたい名前を指定し、その後、あなたはどちらかあなたのグリフにnameのattrを設定することができます(それがすべてでアクティブですデフォルトでは)上でアクティブである必要レンダラーいる制限するには:

p.circle('a', 'b', size=10, name='circle', source=source) 
hover = HoverTool(names=['circle']) 

ドキュメント:http://bokeh.pydata.org/en/latest/docs/reference/models/tools.html#bokeh.models.tools.HoverTool.names

か、HoverToolにレンダラを追加することができます。

circle = p.circle('a', 'b', size=10, source=source) 
hover = HoverTool(renderers=['circle']) 

ドキュメント:http://bokeh.pydata.org/en/latest/docs/reference/models/tools.html#bokeh.models.tools.HoverTool.renderers

+1

ありがとうございました!! '名前'はbokeh v0.12.1と完全に動作します – ragesz

関連する問題