Bokeh 创建一个简单的范围滑块
Bokeh是Python中一款强大的数据可视化库,能够帮助创建交互式和独特的可视化效果。 Bokeh支持各种渲染技术,并提供了多种内置工具,用于创建具有多个图形的复杂可视化效果。本文将指导您通过使用Bokeh创建具有多个图形的图表的过程。这个图表结合了不同的图形,以在单个图表中显示多个数据系列,以更有效地理解不同变量之间的关系。
范围滑块的主要优势是什么
- 交互性 − 范围滑块提供了一种交互方式,用户可以调整图表的范围,这对于探索数据和识别趋势非常有用。
-
范围控制 − 范围滑块允许用户控制显示在图表上的数据范围,使得更容易放大到感兴趣的特定区域。
-
易于使用 − 范围滑块易于使用,只需几行代码就可以将其添加到Bokeh图表中。
-
可定制性 − 范围滑块可以在外观和行为方面进行定制,使开发人员能够创建适合其特定需求的滑块。
-
与其他小部件的集成 − 范围滑块可以与其他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
现在,我们将通过传入范围值、初始范围和步长来创建一个 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交互式可视化的起点。