如何将元素添加到现有的散景图表中

时间:2018-03-04 21:44:01

标签: python bokeh

我正在尝试使用Bokeh做一个简单的实时股票数据可视化工具。我创建了对象数据类型Candle,其中包含timehighestlowestopenclose属性。 candle1candle2candle3Candle的实例。我使用下面的代码来显示包含这3个实例的数据的图表。如果我想在显示图表后添加第4个蜡烛(在调用show(plot)之后),我应该怎么做?我认为我没有实现它,因为html包含静态数据,但我没有任何关于如何做我想要的线索。

目标是每分钟收到一支蜡烛并将其添加到图表中。

plot = figure(x_axis_type="datetime", width = 1000, height= 300, title ="Live Chart", sizing_mode  ='scale_both')
plot.segment(candle1.time, candle1.highest, candle1.time, candle1.lowest, color="black")
plot.segment(candle2.time, candle2.highest, candle2.time, candle2.lowest, color="black")

plot.vbar(candle1.time, 0.5 *60*60*1000, candle1.open, candle1.close,fill_color="#00ff80", line_color="black")
plot.vbar(candle2.time, 0.5 * 60 * 60 * 1000, candle2.open, candle2.close, fill_color="#00ff80",
          line_color="black")
output_file("candlestick.html", title="Candle example")
show(plot)

1 个答案:

答案 0 :(得分:0)

只是更新:我使用ColumnDataSource,流功能和自动回调实现了这一目标。

def update():
     candle_data.stream(new_data, 300)   

plot = figure(x_axis_type='datetime',x_range=(start_day, final_day), width=1500, height=900, title='Live Chart', sizing_mode='scale_both')
    plot.segment(x0='time', y0='highest', x1='time', y1='lowest', color='black', source=candle_data)
    plot.vbar(x='time', width = 0.5*60*60*50 ,bottom='open', top='close',fill_color='color', line_color='black', source = candle_data) doc.add_root(column([plot]))
doc.add_periodic_callback(update, 20000)
doc.title = "Candle Data Live Rates"