可视化-bokeh-01-初识

在本系列中,我们将深入探讨可视化库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:整体操作相当简单。对于这类图形,一个常见的需求是鼠标移动时显示数值,敬请期待下期分享。