2016-07-10 10 views
6

Я пытаюсь привести пример Bokeh Application (в формате «одного модуля») для создания диаграммы из набора данных. В данном примере пользователь на веб-странице может щелкнуть по кнопке, и график обновится с последними данными. Я пытаюсь выяснить, как я могу достичь такого же поведения, не требуя от пользователя щелчка по кнопке. То есть, я хотел бы, чтобы диаграмма автоматически обновляла/обновляла/перезагружалась с заданным интервалом без необходимости взаимодействия с пользователем. В идеале мне нужно было что-то изменить в myapp.py, чтобы это сделать.Bokeh: Автоматически освежающие графики bokeh

bokeh версия - 0.12.0.

Демо-код копируется здесь для удобства:

# myapp.py 

import numpy as np 

from bokeh.layouts import column 
from bokeh.models import Button 
from bokeh.palettes import RdYlBu3 
from bokeh.plotting import figure, curdoc 

# create a plot and style its properties 
p = figure(x_range=(0, 100), y_range=(0, 100), toolbar_location=None) 
p.border_fill_color = 'black' 
p.background_fill_color = 'black' 
p.outline_line_color = None 
p.grid.grid_line_color = None 

# add a text renderer to out plot (no data yet) 
r = p.text(x=[], y=[], text=[], text_color=[], text_font_size="20pt", 
      text_baseline="middle", text_align="center") 

i = 0 

ds = r.data_source 

# create a callback that will add a number in a random location 
def callback(): 
    global i 
    ds.data['x'].append(np.random.random()*70 + 15) 
    ds.data['y'].append(np.random.random()*70 + 15) 
    ds.data['text_color'].append(RdYlBu3[i%3]) 
    ds.data['text'].append(str(i)) 
    ds.trigger('data', ds.data, ds.data) 
    i = i + 1 

# add a button widget and configure with the call back 
button = Button(label="Press Me") 
button.on_click(callback) 

# put the button and plot in a layout and add to the document 
curdoc().add_root(column(button, p)) 

ответ

Смежные вопросы