要使用Bokeh的HoverTool工具来显示数值而不使用标签,可以通过自定义工具栏按钮来实现。下面是一个示例代码:
from bokeh.plotting import figure, show
from bokeh.models import HoverTool, CustomJS
# 创建一个示例数据集
x = [1, 2, 3, 4, 5]
y = [6, 7, 8, 9, 10]
# 创建一个图形对象
p = figure(plot_width=400, plot_height=400)
# 添加散点图
p.circle(x, y, size=10)
# 创建HoverTool工具
hover = HoverTool(tooltips=None, mode='mouse')
# 创建自定义的JavaScript回调函数
js_code = """
// 获取鼠标位置
var x = cb_data.geometry.x
var y = cb_data.geometry.y
// 在图形上添加文本标签
var text = new PIXI.Text(x + ', ' + y, {fill: 'white'})
text.position.set(x, y)
text.anchor.set(0, 0)
text.style.fontSize = 12
// 获取图形对象并添加文本标签
var renderer = plot_view.renderer
var plot = plot_view.model
renderer.add_glyph(plot, text)
"""
# 创建自定义的JavaScript回调函数
callback = CustomJS(args={'plot_view': p},
code=js_code)
# 将回调函数添加到HoverTool工具
hover.callback = callback
# 将HoverTool工具添加到图形对象
p.add_tools(hover)
# 显示图形
show(p)
在这个示例中,我们创建了一个散点图并使用了自定义的JavaScript回调函数来在鼠标悬停时动态添加文本标签。这个自定义的回调函数通过获取鼠标的位置,创建一个文本标签,并将其添加到图形对象中。这样,在鼠标悬停时,图形上将会显示当前鼠标的位置坐标。