Bokehから棒グラフを作成する際に、Datetime x軸を使用しようとしています。私はいくつかの時間分解能を使用していますが、私はその週の間を除いてすべてを動作させることができます。私はこのようになりますパンダのデータフレームを持っている(私は参照のための「ウィーク」列を追加し、それはとどまるべきではありません)Bokeh日時軸を使用して週をプロットする
Timestamp ResultID
2017-12-03 106
2017-11-26 381
2017-11-19 406
2017-11-12 662
2017-11-05 656
2017-10-29 638
2017-10-22 429
2017-10-15 784
あなたは、ラベルの位置がずれて、時には欠けていることがわかります。 Bokehは、週の最初の日であるかどうかに関係なく、常に月の最初の日を表示しているようです。これは、他のラベルを位置からずらします。私はこれを行うのに役立つどんなドキュメンテーションも見つけられないようです。カテゴリカル軸を使用することはできません。なぜなら、7つの最近のビンだけを表示するように範囲を設定する方法が壊れるからです。また、カレンダーの週ラベルを表示するためにラベルのフォーマットを変更しようとしましたが、そこには運がありません。ラベルを適切な列に一致させる方法に関するアイデアはありますか?
bintime = 'W'
bins = {'h' : '%Y-%m-%d %H:%M', 'D' : '%F', 'W' : '%F', 'M' : '%Y-%m'}
widths = {'h' : 3600000, 'D' : 86400000, 'W' : 604800000, 'M' : 2419200000}
pad = 0.9
source = ColumnDataSource(df)
now = np.datetime64(datetime.datetime.now())
if bintime == 'M':
padspace = now + np.timedelta64(1*30, 'D')
dispdelta = now - np.timedelta64(7*30, 'D')
else:
padspace = now
dispdelta = now - np.timedelta64(7, bintime)
ranges = ['hours', 'days', 'months']
#xrange = df.DT.tolist()
xrange = (dispdelta, padspace)
output = figure(plot_height=300, width=800, title="MPL Output", x_range=xrange, tools ='xpan,reset,xzoom_in,xzoom_out')
output.vbar(x='Timestamp', top='ResultID', width=widths[bintime]*pad, source=source)
output.xaxis.formatter=DatetimeTickFormatter(hours=bins[bintime], days=bins[bintime], months=bins[bintime])
show(output)