2017-05-30 3 views
0

内に選択ボケクワッド値を参照するために、私は次のコードはhoverツールではなく、tapの作品TapToolどのようにコールバック

を使用して、それらをクリックすると、大腿四頭筋から値を抽出しようとしています。

from bokeh.plotting import figure, show 
from bokeh.models import HoverTool, CustomJS, ColumnDataSource 

source = generate_column_data_source() 
quad_plot = generate_quad_plot(source) 

code = ''' var hovered_ind = cb_data.index['1d'].indices[0]; 
    var data = source.data 
    console.log(hovered_ind) 
    if(hovered_ind != undefined){ 
     console.log('inside', hovered_ind) 
     var top = data['top'][hovered_ind] 
     var bottom = data['bottom'][hovered_ind] 
     var left = data['left'][hovered_ind] 
     var right = data['right'][hovered_ind] 
     console.log(top, bottom, left, right) 
    } ''' 

callback = CustomJS(code=code, args={'source': source}) 

quad_plot.add_tools(TapTool(callback=callback)) 

show(quad_plot) 

cb_data.index['1d'].indices[0];はホバー相互作用のためではなく、タップ選択相互作用のために存在しているようです。

タップ選択のため

cb_dataは私にxyvx、およびvyポイントを与えるgeometryという名前の単一の属性を持っています。

これらのパラメータは、ソースからの値の効率的な索引付け/参照を保証するのに十分正確であるとは思われません。

TapToolのインデックスを正確に取得する方法はありますか?

答えて

1

taptoolで選択されたグリフはsource.selected属性でアクセスできます。 0d、1d、2dに関する最後のコメントに答えるには:ポイントグリフの場合は、source.selected['0d'].indices、オブジェクト '1d'のような行、['2d']までの複数行/パッチグリフからアクセスできます。 http://bokeh.pydata.org/en/latest/docs/reference/models/sources.html(選択した属性にスクロールダウン)

from bokeh.plotting import figure, show 
from bokeh.models import HoverTool, CustomJS, ColumnDataSource, TapTool 

top = [2, 3, 4] 
bottom = [1, 2, 3] 
left = [1, 2, 3] 
right = [1.2, 2.5, 3.7] 
data = {'top':top, 'bottom':bottom, 'left':left, 'right':right} 
source = ColumnDataSource(data) 
quad_plot = figure(plot_width=300, plot_height=300) 
quad_plot.quad(top="top", bottom="bottom", left="left", 
    right="right",source=source, color="#B3DE69") 


tap_code = """ 
    var selected= source.selected['1d'].indices 
    console.log('tap, you selected:', selected) 
""" 
tap_callback = CustomJS(code = tap_code, args={'source': source}) 
quad_plot.add_tools(TapTool(callback=tap_callback)) 

show(quad_plot) 
+0

おかげで再びお好み焼き。ドキュメントの中でこれの参照を見つけることができますか? – Conic

+0

TapToolのドキュメント(タップツールでグリフを選択できることを伝えます)、JSコールバックの例(ツールでのさまざまなコールバックなど)、ソースドキュメント(選択されたグリフやインディーズへのアクセス方法など) – Anthonydouc

関連する問題