代码之家  ›  专栏  ›  技术社区  ›  Fedor Nikitin

如何获取Bokeh热图中点击位置的标签

  •  0
  • Fedor Nikitin  · 技术社区  · 8 年前

    我有博克热图。我注册回调,并能够获得单击位置的x和y坐标。有没有办法获得相同位置的x和y标签?cb\U数据似乎不包含任何有用的信息。

    source = ColumnDataSource(data=dict(xname=xname, 
                                        yname=yname, 
                                        colors=color, 
                                        alphas=alpha,
                                        means=means.flatten(),
                                        stds=stds.flatten(),))
    
    callback = CustomJS(args=dict(source=source), code="""alert(JSON.stringify(cb_obj));""")
    
    p = figure(title="Plot",
               x_axis_location="above", 
               tools="pan,hover,save,wheel_zoom,box_zoom,reset",
               x_range=labels, y_range=list(reversed(labels)))
    p.js_on_event('tap', callback)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Fedor Nikitin    8 年前

    下面是我最后是如何做到的。

    tapCallback = CustomJS(args=dict(source=source), code="""
    var index = source.selected['1d'].indices;
    xlabel = source.data.xname[index];
    ylabel = source.data.yname[index];
    alert(ylabel + '-' + xlabel);
    """)
    
    p.select_one(HoverTool).tooltips = [('OD:', '@yname-@xname'),('mean', '@means'),('std', '@stds'),]
    p.select_one(TapTool).callback = tapCallback