Bokeh 在笔记本中获取 Bokeh 的选择
在本文中,我们将介绍如何在使用 Bokeh 进行数据可视化的笔记本中获取 Bokeh 的选择。Bokeh 是一个用于创建交互式绘图的Python库,它提供了许多强大的功能和工具,使得数据探索变得更加直观和有趣。
Bokeh 中的选择功能允许用户通过点击、选择或悬停在可视化图表上的数据点来获取其相关信息。这对于数据分析师或研究人员来说非常有用,因为它们可以轻松地获取所选数据的详细信息或进行进一步的分析。
阅读更多:Bokeh 教程
基本操作步骤
要获取 Bokeh 的选择,我们需要按照以下基本步骤进行操作:
- 创建数据源和绘图工具:首先,我们需要创建一个数据源并使用 Bokeh 的绘图工具将数据可视化。例如,我们可以使用 Pandas 将数据加载到数据框中,并使用 Bokeh 创建一个散点图。
import pandas as pd from bokeh.plotting import figure, show from bokeh.io import output_notebook # 加载数据 data = pd.read_csv("data.csv") # 创建绘图工具 output_notebook() plot = figure() # 绘制散点图 plot.circle(data['x'], data['y'])
- 添加选择工具:接下来,我们需要添加一个选择工具,以便在图表上选择数据点。Bokeh 提供了许多不同的选择工具,例如
TapTool
、HoverTool
和BoxSelectTool
。from bokeh.models import HoverTool # 添加悬停工具 hover_tool = HoverTool() hover_tool.tooltips = [("X", "@x"), ("Y", "@y")] plot.add_tools(hover_tool)
在上面的示例中,我们添加了一个悬停工具
HoverTool
,它将显示所选数据点的 x 和 y 值。 -
处理选择事件:最后,我们需要处理选择事件,并获取所选数据的详细信息。Bokeh 提供了
Selection
对象,它可以检测选择事件并提供所选数据的索引值。from bokeh.models import Selection def on_selection_change(attr, old, new): selected_indices = new['1d']['indices'] selected_data = data.iloc[selected_indices] print(selected_data) selection = Selection() selection.on_change('indices', on_selection_change)
在上面的示例中,我们定义了一个名为
on_selection_change
的回调函数,它将在选择事件发生时被调用。这个函数通过所选数据的索引值获取所选数据,并打印出来。 -
显示图表:最后,我们需要显示图表,并通过与图表交互来触发选择事件。
show(plot)
当图表显示在笔记本中时,您可以使用鼠标点击、悬停或框选来选择数据点,并相应地触发选择事件。
示例
让我们通过一个具体的示例来演示如何在 Bokeh 的笔记本中获取选择。假设我们有一个包含客户 ID、购买量和销售额的数据集,并希望能够通过选择来获取特定客户的详细信息。
首先,我们加载数据并创建一个散点图:
import pandas as pd
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
# 加载数据
data = pd.read_csv("sales_data.csv")
# 创建绘图工具
output_notebook()
plot = figure()
# 绘制散点图
plot.circle(data['customer_id'], data['purchase_quantity'])
然后,我们添加一个悬停工具,以显示所选客户的销售额:
from bokeh.models import HoverTool
# 添加悬停工具
hover_tool = HoverTool()
hover_tool.tooltips = [("Customer ID", "@customer_id"), ("Sales", "@sales")]
plot.add_tools(hover_tool)
接下来,我们定义一个回调函数来处理选择事件,并获取所选客户的详细信息:
from bokeh.models import Selection
def on_selection_change(attr, old, new):
selected_indices = new['1d']['indices']
selected_data = data.iloc[selected_indices]
print(selected_data)
selection = Selection()
selection.on_change('indices', on_selection_change)
最后,我们显示图表,并使用鼠标选择特定的客户:
show(plot)
当您在图表上选择一个或多个数据点时,所选客户的详细信息将显示在笔记本中。
总结
通过 Bokeh,我们可以轻松地在笔记本中获取 Bokeh 的选择。通过创建数据源和绘图工具,添加选择工具,并处理选择事件,我们可以轻松地获取所选数据的详细信息,并进行进一步的分析和可视化。
Bokeh 提供了许多强大的功能和工具,使得数据探索变得更加直观和有趣。无论您是数据分析师、研究人员还是任何对数据可视化感兴趣的人,Bokeh 都是一个值得一试的工具。希望本文对您在使用 Bokeh 进行数据可视化时有所帮助!