Bokeh 在笔记本中获取 Bokeh 的选择

Bokeh 在笔记本中获取 Bokeh 的选择

在本文中,我们将介绍如何在使用 Bokeh 进行数据可视化的笔记本中获取 Bokeh 的选择。Bokeh 是一个用于创建交互式绘图的Python库,它提供了许多强大的功能和工具,使得数据探索变得更加直观和有趣。

Bokeh 中的选择功能允许用户通过点击、选择或悬停在可视化图表上的数据点来获取其相关信息。这对于数据分析师或研究人员来说非常有用,因为它们可以轻松地获取所选数据的详细信息或进行进一步的分析。

阅读更多:Bokeh 教程

基本操作步骤

要获取 Bokeh 的选择,我们需要按照以下基本步骤进行操作:

  1. 创建数据源和绘图工具:首先,我们需要创建一个数据源并使用 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'])
    
  2. 添加选择工具:接下来,我们需要添加一个选择工具,以便在图表上选择数据点。Bokeh 提供了许多不同的选择工具,例如 TapToolHoverToolBoxSelectTool
    from bokeh.models import HoverTool
    
    # 添加悬停工具
    hover_tool = HoverTool()
    hover_tool.tooltips = [("X", "@x"), ("Y", "@y")]
    plot.add_tools(hover_tool)
    

    在上面的示例中,我们添加了一个悬停工具 HoverTool,它将显示所选数据点的 x 和 y 值。

  3. 处理选择事件:最后,我们需要处理选择事件,并获取所选数据的详细信息。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 的回调函数,它将在选择事件发生时被调用。这个函数通过所选数据的索引值获取所选数据,并打印出来。

  4. 显示图表:最后,我们需要显示图表,并通过与图表交互来触发选择事件。

    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 进行数据可视化时有所帮助!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Bokeh 问答