可视化-bokeh-01-初识
- 雪夜
- 2025-08-28
- 热度
在本系列中,我们将深入探讨可视化库bokeh,旨在通过网站展示其功能。本文将根据官方文档,初步介绍bokeh的基本使用。
目前,我正在使用django开发网站,图表显示是其中一个常见需求。之前主要使用echarts,效果不错。然而,我决定尝试bokeh,一方面是为了学习新技术,另一方面是因为我更熟悉Python而非JavaScript。虽然有pyecharts,但我尚未深入研究。经过一番寻找,我发现bokeh非常适合后端实现。
Part 2:示例
下面展示的是从1号到15号的排班情况,1表示上班,0表示放假。生成的图表是一个HTML文件,提供了多种交互工具,如移动和放大等。
生成的HTML文件如下:
Part 3:代码
以下是生成上述图表的代码,编程语言为Python:
from bokeh.plotting import figure, output_file, show准备数据
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] y = [1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1]
输出到静态HTML文件
output_file("排班情况.html")
创建一个带标题和坐标轴标签的新图表
p = figure(title="第一个示例", x_axis_label='几号', y_axis_label='1:上班;0:不用上班')
添加带图例和线宽的线渲染器
p.line(x, y, legend="上班排班", line_width=2)
显示结果
show(p)
代码截图如下:
Part 3:部分代码解读
以上代码源自官方文档,稍作修改。详细信息请参考:
https://www.php.cn/link/48c6cf7451166d5100957505b28a45b8。
output_file("排班情况.html")指定了输出格式,也可以输出为Jupyter Notebooks格式。由于我是在django网站中使用,所以没有进一步研究。
show(p)是输出HTML文件的关键步骤,不可或缺。
p.line(x, y, legend="上班排班", line_width=2)用于绘制图表,需要先定义一个figure对象。
Ps:整体操作相当简单。对于这类图形,一个常见的需求是鼠标移动时显示数值,敬请期待下期分享。