关键步骤:
- 安装必要库:确保安装了
bokeh
和numpy
库。如果没有安装,可以使用pip install bokeh numpy
进行安装。
- 导入所需模块:从
bokeh.plotting
导入figure
、show
、curdoc
,从bokeh.models
导入ColumnDataSource
,从bokeh.driving
导入count
,导入numpy
用于生成随机数据。
- 创建数据源:使用
ColumnDataSource
创建一个数据源对象,初始化时可以设置初始数据。
- 创建图表:使用
figure
创建一个折线图对象,设置图表的标题、坐标轴标签等属性。
- 添加折线:在图表对象上使用数据源添加折线。
- 定义更新函数:通过
@count
装饰器定义一个更新函数,在函数中生成新的随机数据并更新数据源。
- 将图表添加到文档并设置周期性回调:将图表添加到当前文档
curdoc()
,并使用curdoc().add_periodic_callback
设置更新函数的调用周期。
主要代码片段:
from bokeh.plotting import figure, show, curdoc
from bokeh.models import ColumnDataSource
from bokeh.driving import count
import numpy as np
# 创建数据源
source = ColumnDataSource(data=dict(x=[], y=[]))
# 创建图表
p = figure(title='实时动态折线图', x_axis_label='X', y_axis_label='Y')
p.line('x', 'y', source=source)
# 定义更新函数
@count()
def update(t):
new_x = [t]
new_y = [np.random.randint(0, 10)]
source.stream(dict(x=new_x, y=new_y))
# 将图表添加到文档并设置周期性回调
curdoc().add_root(p)
curdoc().add_periodic_callback(update, 1000)