📅  最后修改于: 2023-12-03 14:59:32.180000             🧑  作者: Mango
Bokeh是一个用于Web浏览器上交互式数据可视化的Python库,它使用JavaScript实现,并支持现代网络浏览器中的大部分常见场景。
Bokeh的主要特点包括:
使用pip安装最新版本的Bokeh:
pip install bokeh
以下是一个简单的Bokeh示例程序:
from bokeh.plotting import figure, output_file, show
# 创建图形对象
p = figure(title="简单散点图", x_axis_label='x', y_axis_label='y')
# 添加散点图数据
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20)
# 输出到HTML文件中
output_file("scatter.html")
# 展示图形
show(p)
上面的代码创建了一个简单的散点图,并将结果输出到名为scatter.html的HTML文件中。运行该程序后,可以在浏览器中打开scatter.html文件查看到结果。
Bokeh支持许多可视化组件,包括散点图、折线图、柱状图等。我们可以用类似下面的代码创建一个折线图:
from bokeh.plotting import figure, output_file, show
# 创建图形对象
p = figure(title="简单折线图", x_axis_label='x', y_axis_label='y')
# 添加数据
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# 添加折线
p.line(x, y, line_width=2)
# 输出到HTML文件中
output_file("line.html")
# 展示图形
show(p)
Bokeh支持可交互的控件和动画。例如,我们可以像下面的代码一样创建一个可以调整数据的滑块:
from bokeh.layouts import column
from bokeh.models import CustomJS, ColumnDataSource, Slider
from bokeh.plotting import figure, output_file, show
# 创建图形对象和数据源
p = figure(title="简单折线图", x_axis_label='x', y_axis_label='y')
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[6, 7, 2, 4, 5]))
# 添加折线
p.line('x', 'y', source=source, line_width=2)
# 创建滑块
slider = Slider(start=0.1, end=4, value=1, step=.1, title="scale")
# 添加JavaScript回调函数
callback = CustomJS(args=dict(source=source, slider=slider), code="""
const data = source.data;
const f = slider.value
const x = data['x']
const y = data['y']
for (var i = 0; i < x.length; i++) {
y[i] = Math.pow(x[i], f)
}
source.change.emit();
""")
# 将滑块的回调函数添加到JS中
slider.js_on_change('value', callback)
# 输出到HTML文件中
output_file("slider.html")
# 展示图形和滑块
show(column(p, slider))
该程序创建了一个折线图和一个滑块用于调整数据的幂次方。运行该程序并打开生成的slider.html文件,可以使用滑块调整幂次方来观察数据的变化。
Bokeh是一个功能强大的Python库,可以用于Web浏览器上的交互式数据可视化。本文提供了Bokeh的基础知识和代码示例,希望对读者有所帮助。