下面是一个使用Bokeh库的示例代码,演示了如何使用HoverTool来显示数据来自不同列的情况:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource, HoverTool
# 创建示例数据
data = {'x': [1, 2, 3, 4, 5],
'y': [6, 7, 2, 4, 5],
'size': [10, 20, 30, 40, 50],
'color': ['red', 'green', 'blue', 'orange', 'purple'],
'label': ['A', 'B', 'C', 'D', 'E']}
# 创建ColumnDataSource对象
source = ColumnDataSource(data=data)
# 创建绘图对象
p = figure()
# 绘制散点图
p.circle(x='x', y='y', size='size', color='color', legend_field='label', source=source)
# 创建HoverTool对象
hover_tool = HoverTool(tooltips=[('Label', '@label'),
('Size', '@size'),
('Color', '@color')],
mode='mouse')
# 将HoverTool对象添加到绘图对象中
p.add_tools(hover_tool)
# 显示绘图结果
show(p)
在这个示例中,我们先创建了一个包含不同列的示例数据字典。然后,我们使用ColumnDataSource
将数据传递给绘图对象,这样我们就可以在绘图中引用这些数据列。接下来,我们使用circle
方法绘制了一个散点图,其中x坐标使用x
列,y坐标使用y
列,点的大小使用size
列,点的颜色使用color
列,图例使用label
列。然后,我们创建了一个HoverTool
对象,通过tooltips
参数指定了要显示的数据列。最后,我们将HoverTool
对象添加到绘图对象中,并显示绘图结果。当我们将鼠标悬停在散点上时,将显示相应的数据列值。