温馨提示×

Bokeh怎么动态调整数据集

小亿
86
2024-05-21 14:53:37
栏目: 编程语言

在 Bokeh 中,可以通过以下方法动态调整数据集:

  1. 使用 ColumnDataSource:将数据存储在 ColumnDataSource 对象中,然后在需要更新数据时,直接修改 ColumnDataSource 对象中的数据即可。例如:
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from bokeh.io import curdoc

# 创建 ColumnDataSource 对象
source = ColumnDataSource(data={'x': [1, 2, 3], 'y': [4, 5, 6]})

# 创建图形
p = figure()
p.circle('x', 'y', source=source)

# 更新数据
def update_data():
    new_data = {'x': [4, 5, 6], 'y': [7, 8, 9]}
    source.data = new_data

curdoc().add_periodic_callback(update_data, 1000)
  1. 使用 CustomJS 回调函数:可以在 Bokeh 图形中添加 CustomJS 回调函数来动态更新数据。例如:
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource, CustomJS
from bokeh.io import curdoc

# 创建 ColumnDataSource 对象
source = ColumnDataSource(data={'x': [1, 2, 3], 'y': [4, 5, 6]})

# 创建图形
p = figure()
p.circle('x', 'y', source=source)

# 定义 CustomJS 回调函数
callback = CustomJS(args={'source': source}, code="""
    var data = source.data;
    // 更新数据
    data['x'] = [4, 5, 6];
    data['y'] = [7, 8, 9];
    source.change.emit();
""")

# 添加回调函数
source.js_on_change('data', callback)

这些方法可以帮助您在 Bokeh 中动态调整数据集。您可以根据需要选择适合您的情况的方法。

0