要制作一個動態更新的數據圖表,我們可以使用Bokeh的ColumnDataSource
和stream
方法來動態更新數據。
首先,我們需要創建一個ColumnDataSource
對象來存儲數據。然后,我們可以使用Bokeh的繪圖工具創建一個圖表,并將ColumnDataSource
傳遞給該圖表。接下來,我們可以使用stream
方法來動態更新數據。以下是一個簡單的示例代碼:
from bokeh.plotting import figure, curdoc
from bokeh.models import ColumnDataSource
from bokeh.layouts import column
import numpy as np
# 創建一個ColumnDataSource對象
source = ColumnDataSource(data=dict(x=[], y=[]))
# 創建一個圖表
plot = figure(plot_height=400, plot_width=800, title="Dynamic Data Plot")
plot.line('x', 'y', source=source, line_width=2)
# 創建一個更新數據的回調函數
def update_data():
new_data = dict(x=[1, 2, 3, 4, 5], y=np.random.randint(0, 10, 5))
source.stream(new_data, rollover=10)
# 添加圖表到文檔
curdoc().add_root(column(plot))
# 添加周期性回調函數
curdoc().add_periodic_callback(update_data, 1000)
在這個示例中,我們首先創建了一個空的ColumnDataSource
對象來存儲數據。然后,我們創建了一個簡單的折線圖表,并將ColumnDataSource
傳遞給該圖表。接著,我們定義了一個update_data
函數,該函數生成新的數據并通過stream
方法動態更新數據。最后,我們將圖表添加到文檔,并使用add_periodic_callback
方法來定時更新數據。
運行該代碼,你將會看到一個動態更新的數據圖表。每秒鐘,圖表將自動更新一次數據。