python 2.7 - 散景字形坐标与x_axis_type 'datetime'



>我正在尝试将一个简单的文本字符串(字形)添加到使用x_axis_type='datetime'的散景图中

我的代码(剥离到其基本要素)如下:

p = figure(plot_width=900, plot_height=380, x_axis_type='datetime')
dt  = date(2003, 3, 15)
p.line(xvals, yvals)
txt = Text(
     # x=some_formatting_function(dt), 
     x=1057005600000, 
     y=0.1, 
     text=["happy day!"],
     text_align="left", 
     text_baseline="middle",
     text_font_size="11pt", 
     text_font_style="italic", 
 )
p.add_glyph(txt)
show(p)

x 轴范围/值(即日期)从 2002 年到 2006 年,我想在 2003 年添加文本。 我在上面的代码中显示的 x 值(即 1057005600000 - 我通过反复试验计算出来)将字形放在正确的位置。

但是我无法弄清楚如何直接使用日期时间...

是否有散景功能(或datetime.date的属性)可以给我散景图所期望的值?

非常感谢。

:注:我试过使用x = bokeh.properties.Date(dt)但这给了我:

ValueError: expected an element of either String, 
Dict(String, Either(String, Float)) or Float, got <bokeh.properties.Date object 

当x_axis_type属性设置为"日期时间"时,散景将根据自纪元以来的秒数沿 x 轴绘制内容。最简单的解决方案是使用 datetime.datetime(不是 .date),然后使用 timestamp() 方法将 dt 对象转换为 seconds-since-epoch(这将给出您得到的 ~1.50e9 数字),然后将其用于您的 x 坐标。

$ from datetime import datetime
$ dt = datetime.now()
$ dt
> datetime.datetime(2015, 6, 17, 10, 41, 34, 617709)
$ dt.timestamp()
> 1434555694.617709

请参阅以下 SO 问题/答案,了解 python2 对我的问题的答案:

如何在 Python 中将日期时间对象转换为自纪元(unix 时间)以来的毫秒?

谢谢卡纳万@Luke为我指出正确的方向(!

相关内容

  • 没有找到相关文章

最新更新