Bokeh HoverTool 在 bokeh 散点图中的多个数据系列
在本文中,我们将介绍如何使用 Bokeh 的 HoverTool 在散点图中展示多个数据系列。
阅读更多:Bokeh 教程
什么是 Bokeh?
Bokeh 是一种 Python 库,用于创建交互式的数据可视化。它允许用户使用 Python 生成绚丽的可视化效果,而无需了解 JavaScript 或其他前端技术。Bokeh 提供了强大的工具,帮助用户创建各种类型的图表,包括散点图、折线图、柱状图等。
Bokeh 散点图
散点图是一种常用的可视化方式,用于显示两个变量之间的关系。Bokeh 提供了 Scatter 类,可以方便地创建散点图。
下面是一个简单的例子,展示了如何使用 Bokeh 创建一个简单的散点图:
from bokeh.plotting import figure, show
# 创建一个散点图的画布
p = figure(title="Scatter Plot", x_axis_label="X", y_axis_label="Y")
# 添加散点数据
p.scatter([1, 2, 3, 4, 5], [6, 7, 2, 4, 5])
# 显示散点图
show(p)
运行上面的代码,可以看到一个简单的散点图,其中 x 轴和 y 轴分别表示变量 X 和变量 Y。
Bokeh HoverTool
Bokeh 的 HoverTool 是一种交互式工具,可以在鼠标悬停时显示数据的详细信息。它可以帮助用户更详细地了解图表中的数据。在散点图中,HoverTool 可以显示每个散点的具体数值。
下面是一个示例,展示了如何在散点图中使用 HoverTool:
from bokeh.models import HoverTool
from bokeh.plotting import figure, show
# 创建一个散点图的画布
p = figure(title="Scatter Plot", x_axis_label="X", y_axis_label="Y")
# 添加散点数据
p.scatter([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=15,
fill_color='blue', line_color='black')
# 创建 HoverTool,并配置悬停时显示的信息
hover = HoverTool(tooltips=[("X", "@x"), ("Y", "@y")])
# 将 HoverTool 添加到散点图中
p.add_tools(hover)
# 显示散点图
show(p)
运行上面的代码,当鼠标悬停在散点上时,会显示该点的 x 值和 y 值。
Bokeh 的多个数据系列
有时候,我们希望在散点图中显示多个数据系列,以便比较它们之间的关系。在 Bokeh 中,可以通过在 Scatter 类的数据参数中传入多个列表来实现。
下面是一个示例,展示了如何在散点图中显示多个数据系列:
from bokeh.models import HoverTool
from bokeh.plotting import figure, show
# 创建一个散点图的画布
p = figure(title="Scatter Plot", x_axis_label="X", y_axis_label="Y")
# 添加多个散点数据
p.scatter([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=15,
fill_color='blue', line_color='black', legend_label='Series 1')
p.scatter([1, 2, 3, 4, 5], [2, 4, 6, 8, 10], size=15,
fill_color='red', line_color='black', legend_label='Series 2')
# 创建 HoverTool,并配置悬停时显示的信息
hover = HoverTool(tooltips=[("Series", "$name"), ("X", "@x"), ("Y", "@y")])
# 将 HoverTool 添加到散点图中
p.add_tools(hover)
# 显示散点图
show(p)
运行上面的代码,可以看到散点图中显示了两个数据系列,分别表示 Series 1 和 Series 2。当鼠标悬停在散点上时,会显示该点所属的系列、x 值和 y 值。
总结
本文介绍了如何使用 Bokeh 的 HoverTool 在散点图中展示多个数据系列。通过创建 Scatter 类并添加多个散点数据,我们可以轻松地在散点图中显示多个数据系列。通过配置 HoverTool 的参数,我们可以在鼠标悬停时显示散点的详细信息。Bokeh 提供了丰富的功能和工具,帮助用户创建交互式的数据可视化效果。