如何在x轴上显示日期时间?

时间:2019-10-22 09:18:49

标签: python bokeh

我正在尝试使用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显示日期时间吗?

1 个答案:

答案 0 :(得分:0)

坐标不应为字符串。他们应该是:

  • 实际日期时间类型,例如任何Python,NumPy或Pandas日期时间类型都可以使用

  • 数字时间戳记,特别是距历时的毫秒