グラフ上をダブルクリックすると、軸がリセットされる機能って便利ですよね。
Plotlyにはその機能がデフォルトでついていますが、Bokehにはついていません。ですが、実は一行で実装できるのです。
このissuesに実装方法が書いてあったので、参考にして簡単なグラフを作ってみました。
from bokeh.plotting import figure, save, output_file
from bokeh.models import ColumnDataSource, CustomJS
from bokeh.events import DoubleTap
from bokeh.sampledata.stocks import MSFT
import pandas as pd
output_file('MSFT.html')
df = pd.DataFrame(MSFT)
df.date = pd.to_datetime(df.date)
source = ColumnDataSource(df)
# ここの設定値にグラフがリセットされる
p = figure(x_axis_type='datetime', y_range=(0, 200))
p.line(x='date', y='close', source=source)
# この一行のコードで、軸リセットを実装している
p.js_on_event(DoubleTap, CustomJS(args=dict(p=p), code='p.reset.emit()'))
save(p)
リセット機能がワタシ的に超重要だったのですが、これでBokehに移行できそうです。BokehのColumnDataSourceでいろんなデータをリンクさせられるのがすごく便利😀