阅读量:0
在 Bokeh 中,可以通过以下方法动态调整数据集:
- 使用 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)
- 使用 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 中动态调整数据集。您可以根据需要选择适合您的情况的方法。