在具有多列的Pandas DataFrame上使用Bokeh HoverTool

时间:2017-03-01 15:05:46

标签: python bokeh

我有一个大约30列的pandas DataFrame,每个列都有相同日期的数据(例如,DataFrame的列是传感器,DataFrame的行是这些日期传感器的读数)。我希望能够将鼠标悬停在数据点上,并提供该传感器读数的工具提示。我可以通过为每个传感器名称创建一个HoverTool并命名每个字形来完成此操作。唯一的问题是30个不同的HoverTools出现在情节的右侧,这是丑陋的。我认为HoverTool.always_active会解决这个问题,但似乎没有实现此功能。

有没有办法隐藏散景中的HoverTool图标?如果没有,有没有更好的方法在DataFrame上实现HoverTool?我可以将数据重新整形为[n,3]数组,但我不愿意。

列是["传感器A,X","传感器A,Y""传感器B,X""传感器B, Y",...]所以我有一个名为"传感器A"的字形的HoverTool。和一个名称为"传感器B"等的字形

为一个HoverTool提供了一长串工具提示: enter image description here

有很多HoverTools:

enter image description here

我可以通过隐藏工具栏来绕过HoverTools列表,但它不是一个非常干净的解决方案。

2 个答案:

答案 0 :(得分:0)

假设您的数据已使用

加载到Bokeh中

source = ColumnDataSource(df)

然后你可以试试像

这样的东西

p.select_one(HoverTool).tooltips = [ (value, value_data), ('A_X', '@A_x'), ('A_Y', '@A_Y') ]

看看

http://bokeh.pydata.org/en/latest/docs/gallery/unemployment.html

答案 1 :(得分:0)

我最终使用pandas中的融合功能将[26,28] pandas数据帧转换为[2,364]数据帧,这样我只需要使用一个hovertool。