在 Bokeh 中创建简单的范围滑块


Bokeh 是 Python 中一个强大的数据可视化库,有助于为网络创建交互式和独特的可视化效果。Bokeh 支持各种渲染技术,并提供各种内置工具来创建具有多个图形的复杂可视化效果。本文档将指导您完成使用 Bokeh 创建包含多个图形的绘图的过程。此绘图结合了不同的图形以在单个绘图中显示多个数据系列,这提供了一种更有效的方式来理解不同变量之间的关系。

范围滑块的主要优势是什么?

  • 交互式 - RangeSlider 为用户提供了一种交互式的方式来调整绘图的范围,这对于探索数据和识别趋势特别有用。

  • 范围控制 - RangeSlider 允许用户控制绘图上显示的数据范围,从而更容易放大感兴趣的特定区域。

  • 易于使用 - RangeSlider 易于使用,只需几行代码即可添加到 Bokeh 绘图中。

  • 可定制 - RangeSlider 可以在外观和行为方面进行自定义,允许开发人员创建适合其特定需求的滑块。

  • 与其他部件集成 - RangeSlider 可以与其他 Bokeh 部件集成,以创建更复杂和交互式的可视化效果。

先决条件

在我们深入研究任务之前,期望您的系统上安装了一些东西 -

推荐设置列表 -

  • pip install pandas, bokeh

  • 预计用户将能够访问任何独立的 IDE,例如 VS-Code、PyCharm、Atom 或 Sublime text。

  • 也可以使用在线 Python 编译器,例如 Kaggle.com、Google Cloud 平台或任何其他编译器。

  • 更新版本的 Python。在撰写本文时,我使用了 3.10.9 版本。

  • 了解如何使用 Jupyter notebook。

  • 虚拟环境的知识和应用将是有益的,但不是必需的。

  • 还预计用户将对统计学和数学有很好的理解。

分步指南

导入 Bokeh 和相关库

我们首先导入必要的库。我们将使用 `bokeh.plotting` 创建图形,并使用 `bokeh.layouts` 来排列滑块和图形。

语法

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np
from bokeh.models import Range1d
from bokeh.models.widgets import RangeSlider
from bokeh.io import show

创建数据

通过定义范围的起始值和结束值来创建滑块数据。我们将使用 NumPy 数组来指定范围值。

语法

start = 1
end = 10
values = np.arange(start, end+1, 1)

创建范围滑块

现在,我们将通过传入范围值、初始范围和步长来创建一个 RangeSlider 对象。我们将设置滑块的最小和最大范围值。

语法

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))

创建图形

接下来,我们创建一个图形对象并添加折线图。然后,我们将指定折线图的范围和域,并使用布局对象将其放置在页面上。

语法

plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = Range1d(1, 3)
plot.y_range = Range1d(-1, end+1)

创建布局

最后,我们使用布局对象来排列滑块和图形。

语法

layout = layout([[plot], [range_slider]])

显示滑块和图形

要查看滑块和图形,我们使用 `show` 函数。

语法

show(layout)yout = layout([[plot], [range_slider]])

示例

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np

start = 1
end = 10
values = np.arange(start, end+1, 1)

from bokeh.models.widgets import RangeSlider

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))
plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = range_slider
plot.y_range = (-1, end+1)

layout = layout([[plot], [range_slider]])
from bokeh.io import show
show(layout)

上述代码片段的输出将生成一个值为 1 到 10 的范围滑块。

最终程序,代码

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np
from bokeh.models import Range1d
from bokeh.models.widgets import RangeSlider
from bokeh.io import show

start = 1
end = 10
values = np.arange(start, end+1, 1)

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))
plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = Range1d(1, 3)
plot.y_range = Range1d(-1, end+1)

layout = layout([[plot], [range_slider]])
show(layout)

输出

在上一节中,我们可以看到 Bokeh 中范围滑块的输出,以及用于更好地理解的示例。

结论

在本教程中,您学习了如何在 Bokeh 中创建简单的范围滑块。您创建了一个 RangeSlider、一个 Figure 和一个 Layout,以在折线图中显示一系列值,同时允许用户选择一系列值。Bokeh 提供了许多灵活性和自定义选项来创建动态和交互式的数据可视化效果。本教程是使用 Bokeh 构建更复杂交互式可视化的起点。

更新于:2023 年 4 月 25 日

777 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.