私はドキュメントを読んで、GoogleとStackOverflowで回答を探しましたが、賢明な人はまだいません。x軸からボケに希望する日時の値を取得する
私は、2つの変数 'score'と 'stress'の円グリフを持つボケグラフと、日時x軸(picture here)として3番目の変数 'date'を持っています。私は、ユーザーがサークルをクリックし、その特定のデータポイントの詳細なビューを示すURLに移動し、対応する日付で識別されるようにします。
URLの最後にdatetime値を追加するopenURLコールバックを持つタップツールを有効にしました。問題は、一度データポイントをクリックすると、渡されたdatetime値が希望の形式('2016-07-20'
)になっていないことです。代わりに、次の値が得られます: '1468969200000'。したがって、ユーザーは 'url/2016-07-20 /'の代わりに 'url/1468969200000 /'にリダイレクトされます。
データポイントをクリックすると渡される日付値の形式を変更する方法はありますか?
import datetime
from bokeh.plotting import figure, output_notebook, show
from bokeh.models import Range1d, OpenURL, TapTool, HoverTool, ColumnDataSource, DatetimeTickFormatter
data = {'score': [4.33, 2.66, 4.66, 2.66, 2.66, 1.66, 1.0, 4.33],
'stress': [3.66, 3.0, 3.0, 1.33, 3.66, 3.33, 1.0, 4.33],
'date': [
datetime.date(2016, 7, 17),
datetime.date(2016, 7, 18),
datetime.date(2016, 7, 19),
datetime.date(2016, 7, 20),
datetime.date(2016, 7, 21),
datetime.date(2016, 7, 22),
datetime.date(2016, 7, 23),
datetime.date(2016, 7, 24)
]
}
source = ColumnDataSource(data=data)
TOOLS = ['hover', 'pan', 'tap']
plot = figure(x_axis_type='datetime', plot_height=250, tools=TOOLS)
plot.circle('date', 'score', legend='score', size=15, color='red', source=source)
plot.circle('date', 'stress', legend='stress', size=10, color='orange', source=source)
plot.y_range = Range1d(1, 5, bounds=(1,5))
plot.x_range = Range1d(datetime.date(2016, 7, 17), datetime.date(2016, 7, 23))
hover = plot.select(type=HoverTool)
hover.tooltips = [
("score", "@score"),
("stress", "@stress"),
("date", "@date")
]
url = 'url/@date/'
taptool = plot.select(type=TapTool)
taptool.callback = OpenURL(url=url)
show(plot)
感謝を生成します!それはトリックでした! –