Python Bokeh - HoverTool:图形的坐标而不是数据点

Posted

技术标签:

【中文标题】Python Bokeh - HoverTool:图形的坐标而不是数据点【英文标题】:Python Bokeh - HoverTool: Coordinates for the figure and not data points 【发布时间】:2019-06-18 10:50:54 【问题描述】:

我在 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 坐标。

【问题讨论】:

【参考方案1】:

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

作为替代方案,您可以使用低级鼠标事件来使用位置信息更新绘图外部的一些固定Div。一个相关的例子是here。

【讨论】:

以上是关于Python Bokeh - HoverTool:图形的坐标而不是数据点的主要内容,如果未能解决你的问题,请参考以下文章

具有半透明背景的 Python Bokeh Hovertool

如何使用HoverTool显示Bokeh中两个不同字形的两点之间的差异?

带有 HoverTool 的散景线图

使用 HoverTool() 工具时仅显示一个工具提示

散景 - 为补丁图上的单个字形创建自定义hovertool

用于不同线条的多个 HoverTools(散景)