我正在尝试使用Bokeh做一个简单的实时股票数据可视化工具。我创建了对象数据类型Candle
,其中包含time
,highest
,lowest
,open
和close
属性。 candle1
,candle2
和candle3
是Candle
的实例。我使用下面的代码来显示包含这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)
答案 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"