我有两个列表,我在散景中绘制,第一个是由Unix时间戳组成的。我没有绘制问题,但我想要更容易阅读的日期显示如" 2002年1月2日和#34;而不是1010011671.我在第一次声明图形时尝试更改参数,但刻度线不准确。
我用:
绘图t_list = [1239621855.0, 1232034716.0, 1265710807.0, 1289241153.0, 1265330842.0, 1267125816.0, 1285046868.0, 1260797722.0, 1270915355.0]
fig.circle(t_list, val_list, color=col, fill_color='firebrick', fill_alpha=.2, line_color='firebrick', line_alpha=.2, size=3)
我试过了:
fig = figure(title=title, plot_width=600, plot_height=500, tools=tools, responsive=True, x_axis_type='datetime')
和
fig.xaxis.formatter=DatetimeTickFormatter(formats=dict(
seconds=["%d %B %Y"],
minutes=["%d %B %Y"],
hours=["%d %b %Y"],
days=["%d %b %Y"],
months=["%d %b %Y"],
years=["%d %b %Y"]))
但是有了这些,我得到格式正确的刻度线,但日期不准确。显示的第一个刻度是1970年1月15日,这显然是错误的。
答案 0 :(得分:0)
如上所述,Bokeh中日期时间值的基础类型是“自纪元以来的毫秒数”,这就是需要1000因子的原因。
另外,请注意,格式dict已被刻度格式化程序中的各个属性所取代,并且放宽了将值设置为列表的要求。在最近的Bokeh版本中,应该写上面的内容:
fig.xaxis.formatter = DatetimeTickFormatter(
seconds="%d %B %Y",
minutes="%d %B %Y",
hours="%d %b %Y",
days="%d %b %Y",
months="%d %b %Y",
years="%d %b %Y"
)