【发布时间】:2015-10-08 09:40:11
【问题描述】:
是否可以向时间序列图表添加工具提示?
在下面的简化代码示例中,当鼠标悬停在相关行上时,我希望看到单个列名('a'、'b' 或 'c')。
取而代之的是“???”显示并且所有三行都有一个工具提示(而不仅仅是我悬停在上面的那一行)
根据文档 ( http://docs.bokeh.org/en/latest/docs/user_guide/tools.html#hovertool),以“@”开头的字段名被解释为数据源上的列。
如何在工具提示中显示来自 pandas DataFrame 的“列”?
或者,如果高级 TimeSeries 接口不支持这一点,是否有使用低级接口做同样事情的线索? (line?multi_line?)或将DataFrame转换成不同的格式(ColumnDataSource?)
对于赠金,“$x”应如何格式化以将日期显示为日期?
提前致谢
import pandas as pd
import numpy as np
from bokeh.charts import TimeSeries
from bokeh.models import HoverTool
from bokeh.plotting import show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
p = TimeSeries(toy_df, tools='hover')
hover = p.select(dict(type=HoverTool))
hover.tooltips = [
("Series", "@columns"),
("Date", "$x"),
("Value", "$y"),
]
show(p)
【问题讨论】:
-
非常感谢 Colin,这真的很有帮助,并给了我一些建议......将在适当的时候更新问题或发布解决方法
-
这可能是 Bokeh >= 0.12.4 的另一个有用答案:stackoverflow.com/a/42707872/5350621
标签: python-3.x pandas tooltip bokeh timeserieschart