在 Bokeh 中,可以通过以下方法动态调整数据集:
- 使用 ColumnDataSource:将数据存储在 ColumnDataSource 对象中,然后在需要更新数据时,直接修改 ColumnDataSource 对象中的数据即可。例如:
from bokeh.plotting import figure from bokeh.models import ColumnDataSource from bokeh.io import curdoc # 创建 ColumnDataSource 对象 source = ColumnDataSource(data=https://www.yisu.com/ask/{'x': [1, 2, 3], 'y': [4, 5, 6]}) # 创建图形 p = figure() p.circle('x', 'y', source=source) # 更新数据 def update_data(): new_data = https://www.yisu.com/ask/{'x': [4, 5, 6], 'y': [7, 8, 9]} source.data = https://www.yisu.com/ask/new_data>
- 使用 CustomJS 回调函数:可以在 Bokeh 图形中添加 CustomJS 回调函数来动态更新数据。例如:
from bokeh.plotting import figure from bokeh.models import ColumnDataSource, CustomJS from bokeh.io import curdoc # 创建 ColumnDataSource 对象 source = ColumnDataSource(data=https://www.yisu.com/ask/{'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 = https://www.yisu.com/ask/source.data;'x'] = [4, 5, 6]; data['y'] = [7, 8, 9]; source.change.emit(); """) # 添加回调函数 source.js_on_change('data', callback)这些方法可以帮助您在 Bokeh 中动态调整数据集。您可以根据需要选择适合您的情况的方法。