Đối bokeh-0.11.1
:
Về cơ bản, bạn cần phải chạy ứng dụng bạn python trong máy chủ bokeh. Sau đó, bất kỳ ai cũng có thể kết nối với máy chủ và xem biểu đồ trong thời gian thực.
Trước tiên, hãy viết chương trình của bạn. Sử dụng mã này ví dụ:
# myplot.py
from bokeh.plotting import figure, curdoc
from bokeh.driving import linear
import random
p = figure(plot_width=400, plot_height=400)
r1 = p.line([], [], color="firebrick", line_width=2)
r2 = p.line([], [], color="navy", line_width=2)
ds1 = r1.data_source
ds2 = r2.data_source
@linear()
def update(step):
ds1.data['x'].append(step)
ds1.data['y'].append(random.randint(0,100))
ds2.data['x'].append(step)
ds2.data['y'].append(random.randint(0,100))
ds1.trigger('data', ds1.data, ds1.data)
ds2.trigger('data', ds2.data, ds2.data)
curdoc().add_root(p)
# Add a periodic callback to be run every 500 milliseconds
curdoc().add_periodic_callback(update, 500)
Sau đó chạy các máy chủ từ dòng lệnh, với chương trình của bạn:
C:\>bokeh serve --show myplot.py
này sẽ mở trình duyệt với đồ thị thời gian thực của bạn.
Để biết tất cả chi tiết, hãy xem bokeh server documentation.
Nguồn
2016-06-09 12:39:07
Vì lý do kỹ thuật khá khó hiểu, thường được ưu tiên cập nhật toàn bộ thuộc tính '.data'" cùng một lúc "tức là' ds.data = new_data' nếu bạn có thể. Ngoài ra nếu bạn làm theo cách đó, các cuộc gọi 'trigger' là không cần thiết, máy chủ Bokeh sẽ nhận các thay đổi đối với toàn bộ thuộc tính một cách tự động. – bigreddot
Làm cách nào để chỉ hiển thị các điểm X cuối cùng thay vì ép tất cả tập dữ liệu? –
'.stream' chấp nhận tham số' rollover' cho biết số điểm cần giữ ở mức tối đa, trước khi giảm điểm. – bigreddot