我有一个流式波克图,我已经将其嵌入到一个flask渲染的HTML文档中。我使用this repo作为如何连接flask服务器和bokeh服务器的指南。现在我已经在线上了流式绘图,我想要显示绘图下面的流式数据的一些计算(即平均值、差值、标准差)访问绘图数据源进行这些计算的最佳方法是什么?
我的good显示bokeh没有一个很好的方法将文本框放到嵌入的bokeh文档中,所以这意味着我需要以某种方式将数据拉到flask模板中,这样我就可以用jquery操作它了?
有经验的程序员如何开始处理这个问题,或者也许有人知道一个解决了这个问题的项目,我可以看看?谢谢!
发布于 2017-03-20 14:38:53
好消息!事实证明,bokeh确实有一种将文本添加到文档的方法。我用Paragraph()解决了我的问题
因此,例如,我可以将this streaming example修改为以下内容:
from bokeh.plotting import figure, curdoc
from bokeh.driving import linear
from bokeh.models import Paragraph
from bokeh.layouts import column
import random
p = figure( plot_width=300, plot_height=300)
r1 = p.line([], [], color="firebrick", line_width=2)
r2 = p.line([], [], color="navy", line_width=2)
ds1 = r1.data_source
ds2 = r2.data_source
avg1 = Paragraph(text='Average Val #1 is:')
avg2 = Paragraph(text='Average Val #2 is:')
@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)
mean1 = sum(ds1.data['x'])/float(len(ds1.data['x']))
mean2 = sum(ds2.data['x'])/float(len(ds2.data['x']))
avg1.text = 'Average Val #2 is: ' + str(mean1)
avg2.text = 'Average Val #2 is: ' + str(mean2)
curdoc().add_root(column(p,avg1,avg2))
# Add a periodic callback to be run every 500 milliseconds
curdoc().add_periodic_callback(update, 500)https://stackoverflow.com/questions/42894426
复制相似问题