在Bokeh中创建一个简单的范围滑块
Bokeh是Python中一个强大的数据可视化库,它有助于创建交互式和独特的Web可视化效果。Bokeh支持各种渲染技术,并提供了多个内置工具来创建具有多个符号的复杂可视化效果。本文将为您介绍使用Bokeh创建多个图形符号的绘图过程。该图将不同的符号组合在一起,以显示单个图中的多个数据系列,从而提供了一种更有效的方式来理解不同变量之间的关系。
范围滑块有哪些关键好处?
- 交互式 − RangeSlider为用户提供了一种交互式方式来调整图的范围,这对于探索数据和识别趋势特别有用。
-
范围控制 − RangeSlider允许用户控制在绘图中显示的数据范围,从而更容易地缩放到感兴趣的特定区域。
-
易于使用 − RangeSlider易于使用,并且只需添加几行代码即可将其添加到Bokeh图中。
-
可定制 − RangeSlider可以在外观和行为方面进行定制,允许开发人员创建适合其特定需求的滑块。
-
与其他小部件的集成 − RangeSlider可以与其他Bokeh小部件集成,以创建更复杂和交互式的可视化效果。
先决条件
在我们深入任务之前,需要在系统上安装一些东西
推荐设置列表-
- pip install pandas、bokeh
-
预期用户将能够访问任何独立的IDE,例如VS-Code、PyCharm、Atom或Sublime文本。
-
甚至可以使用在线Python编译器,如Kaggle.com、Google Cloud平台或任何其他平台。
-
Python的更新版本。在撰写本文时,我使用的是3.10.9版本。
-
熟悉使用Jupyter笔记本电脑。
-
对虚拟环境的使用和应用将有益但不是必需的。
-
预期该人将对统计学和数学有很好的了解。
逐步指南
导入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提供了很多灵活性和自定义选项,以创建动态和交互式的数据可视化。 本教程是构建更复杂的交互式可视化的起点。