2017-05-30 25 views
0

中,我試圖從四邊形提取值,當我點擊它們使用TapTool如何引用散景四值上選擇回調

下面的代碼工作的hover工具,但不是tap

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有一個名爲geometry一個屬性,這給了我xyvxvy點。

我不相信這些參數是足夠確切的,以保證從我的來源進行有效的索引/查找值。

有沒有什麼辦法可以通過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

相關問題