環境
- Python3.10.2
- bokeh 2.4.3
やりたいこと
X軸が日付である折れ線グラフを作成したいです。
以下を参考にして、折れ線を描画しました。
dates = [datetime.datetime(2022, 8, 1), datetime.datetime(2022, 8, 2)]
sales = [100, 200]
plot = figure(x_axis_type="datetime")
plot.line(x=dates, y=sales)
show(plot)
ハマったこと
dates
の要素の型がdatetime.datetime
でなくdatetime.date
の場合、折れ線は描画されませんでした。
ブラウザのコンソールには、[bokeh] could not set initial ranges
というログが出力されました。
dates = [datetime.date(2022, 8, 1), datetime.date(2022, 8, 2)]
sales = [100, 200]
plot = figure(x_axis_type="datetime")
plot.line(x=dates, y=sales)
show(plot)
figure(x_axis_type="datetime")
と指定しているので、datetime.datetime
でないといけないのは理解できます。
しかし、dates
の型がlist
でなくnumpy.ndarray
ならば、dates
の要素の型がdatetime.date
でも折れ線が描画されました。
dates = numpy.array([datetime.date(2022, 8, 1), datetime.date(2022, 8, 2)])
sales = [100, 200]
plot = figure(x_axis_type="datetime")
plot.line(x=dates, y=sales)
show(plot)
bokehの内部でdatetime.date
をdatetime.datetime
に変換しているのでしょうか?
もともと私はnumpy.ndarray
の変数を渡して日付の折れ線を描画していたので、datetime.date
型が原因であることになかなか気づけませんでした。