Python Bokeh-HoverTool:图形坐标,而非数据点

时间:2019-01-24 16:21:08

标签: python python-3.x hover coordinates bokeh

我正在Windows和Python 3.6.6中使用Bokeh版本1.0.3。

我有一个散点图,我要弄清楚的是当鼠标光标位于(矩形)图形的内部但不指向散点图的点时,获得图形的x,y坐标。

代码在这里:

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

N = 10
x = [1,2,3,4,5,6,7,8,9,10]
y = [-1,2,-3,4,5,1,-2,3,-4,-5]
r = 0.3
hover = HoverTool(
    tooltips=[
        ("index", "$index"),
        ("data (using $) (x,y)", "($x, $y)"),
        ("data (using @) (x,y)", "(@x, @y)"),
        ("canvas (x,y)", "($sx, $sy)")
    ])
TOOLS = [hover]

p = figure(tools="hover,reset,save")
p = figure(tools=TOOLS)
p.scatter(x, y, radius=r, fill_alpha=0.6,line_color=None)
show(p)

例如,当我们指向黄色突出显示的区域时,我们将获得x,y坐标。

img

1 个答案:

答案 0 :(得分:0)

从Bokeh 1.0.4开始,内置的悬停工具没有这种模式。悬停工具仅在字形被光标“击中”时显示。这样做的原因是,诸如@x之类的字段说明符的意思是“在CDS中为光标下方的字形显示值”。如果光标下没有字形,工具提示中的该字段应显示什么?

或者,您可以使用低级鼠标事件来用位置信息更新图外的某些固定Div。一个相关的示例是here