是否可以将工具提示添加到时间序列图表中?
在下面的简化代码示例中,当鼠标悬停在相关行上时,我希望看到单个列名称('a','b'或'c').
相反,一个"???" 显示并且所有三行都得到一个工具提示(而不仅仅是悬停在其上的一个)
根据文档( http://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#hovertool),以"@"开头的字段名称将被解释为数据源上的列.
如何在工具提示中显示pandas数据框中的"列"?
或者,如果高级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)
Run Code Online (Sandbox Code Playgroud) 我想给Bokeh一个大熊猫数据框,以绘制一条多行的折线图.
x轴应该是df.index,每个df.columns应该是一个单独的行.
这就是我想做的事情:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, 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 = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(df)
show(p)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
RuntimeError: Missing required glyph parameters: ys
Run Code Online (Sandbox Code Playgroud)
相反,我设法做到了这一点:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, 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'))
ts_list_of_list = []
for i in range(0,len(toy_df.columns)):
ts_list_of_list.append(toy_df.index)
vals_list_of_list = toy_df.values.T.tolist()
p …
Run Code Online (Sandbox Code Playgroud)