Python 具有自定义日期时间/时间戳值的Bokeh FixedTicker

Python 具有自定义日期时间/时间戳值的Bokeh FixedTicker,python,pandas,bokeh,Python,Pandas,Bokeh,目标:我只希望在2017/10/2和2017/10/5的x轴上有记号标记。一个限制是我的时间不能保证被均匀地分开,所以转换成字符串并进行分类轴是不可能的。它们必须是数字/日期时间 问题:我不确定如何正确设置所需日期的格式,以便Bokeh能够正确呈现这些日期。我试着除以10**9等来转换为毫秒。这是行不通的 示例代码: from bokeh.plotting import figure, show from bokeh.models import FixedTicker import pandas

目标:我只希望在2017/10/2和2017/10/5的x轴上有记号标记。一个限制是我的时间不能保证被均匀地分开,所以转换成字符串并进行分类轴是不可能的。它们必须是数字/日期时间

问题:我不确定如何正确设置所需日期的格式,以便Bokeh能够正确呈现这些日期。我试着除以10**9等来转换为毫秒。这是行不通的

示例代码:

from bokeh.plotting import figure, show
from bokeh.models import FixedTicker
import pandas as pd
import numpy as np

y = list(range(3))
x = [pd.Timestamp('2017-10-01'), pd.Timestamp('2017-10-09'), pd.Timestamp('2017-10-10')]

tick_vals = pd.Series([pd.Timestamp('2017-10-02'), 
                       pd.Timestamp('2017-10-05')]).astype(np.int64)
tick_vals = tick_vals
tick_vals = tick_vals.astype(float)

fig = figure(x_axis_type='datetime')
fig.line(x, y, y_range_name=None)
fig.xaxis.ticker = FixedTicker(ticks=list(tick_vals)) # Commenting this line works okay using the x values. They are properly formatted.

show(fig)
版本: 博克:0.12.9 熊猫:0.20.3 Python:3.5.4
Numpy:1.13.3

将时间戳转换为整数会得到纳秒。所以除以10^6得到毫秒对我来说很有用:

y = list(range(3))
x = pd.to_datetime(['2017-10-01', '2017-10-09', '2017-10-10'])
tick_vals = pd.to_datetime(['2017-10-02', '2017-10-05']).astype(int) / 
10**6

fig = figure(x_axis_type='datetime')
fig.line(x, y)
fig.xaxis.ticker = FixedTicker(ticks=list(tick_vals)) 
show(fig)