从嵌入式散景图中获取信息

时间:2017-03-20 01:20:48

标签: jquery python flask bokeh

我有一个流式散景图,我已经嵌入到烧瓶呈现的HTML文档中。我使用this repo作为如何链接我的烧瓶服务器和我的散景服务器的指南。现在我有在线流媒体图,我想显示一些关于图下方的流数据的计算(即平均点,差分,标准偏差)访问绘图数据源进行这些计算的最佳方法是什么?

我的谷歌搜索显示散景没有一个很好的方法将文本框放在嵌入的散景文档中,这意味着我需要以某种方式将数据拉入烧瓶模板,以便我可以用jquery操作它?

经验丰富的程序员如何开始解决问题,或者有人知道解决了这个问题的项目我可以看看?谢谢!

1 个答案:

答案 0 :(得分:1)

好消息!原来散景确实有办法将文本添加到文档中。我能用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)