我正在尝试使用Bokeh用datetime更新一些实时数据。我尝试了一些方法,但仍然无法成功完成。
这是我的代码。
from bokeh.driving import linear
from bokeh.plotting import figure, curdoc
from random import randint
import datetime
import random
p = figure(title='Test Data',x_axis_type='datetime')
p = figure(plot_width=1300, plot_height=500)
r1 = p.line([], [], color="firebrick", line_width=2)
ds1 = r1.data_source
@linear()
def update(step):
global dsl
ds1.data['x'].append(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
ds1.data['y'].append(random.randint(0,100))
ds1.trigger('data', ds1.data, ds1.data)
curdoc().add_root(p)
curdoc().add_periodic_callback(update, 2000)
如果我修改了
ds1.data['x'].append(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
到
ds1.data['x'].append(step)
代码可以运行。
有人可以给我一个提示,让x_axis显示日期时间吗?
答案 0 :(得分:0)
坐标不应为字符串。他们应该是:
实际日期时间类型,例如任何Python,NumPy或Pandas日期时间类型都可以使用
数字时间戳记,特别是距历时的毫秒