散景:多个地块的单个工具提示

时间:2017-09-04 10:50:45

标签: tooltip bokeh

我在同一个图表上有3个图(Bokeh 0.12.7)

我想显示一个工具提示,其中包含3个图表的所有数据摘要,如下所示:

single tooltip with summary

但只要鼠标指针太靠近多个绘图,我就会获得2/3重叠(和相同)的工具提示,如下例所示:

enter image description here

可以将工具提示限制为单个绘图,但这意味着如果鼠标指针触及另外两个,则不会发生任何事情:在以下代码中,我使用HoverTool中的参数names将工具提示应用于仅限第一个情节。

有没有办法让单个hovertool对所有情节做出反应?

COMMON_PARAM = dict(x="date_time", source=self.data_source, line_alpha=GRAPH_LINE_ALPHA, line_width=GRAPH_LINE_WIDTH)

line1 = self.figure.line(y=f1,
                         line_color=GRAPH_LINE_1_COLOR,                                                  
                         name="line_with_hovertool",
                         **COMMON_PARAM)

line2 = self.figure.line(y=f2,
                         line_color=GRAPH_LINE_2_COLOR,
                         **COMMON_PARAM)

line3 = self.figure.line(y=f3),
                         line_color=GRAPH_LINE_3_COLOR,
                         **COMMON_PARAM)

hover = HoverTool(
    names=["line_with_hovertool"],    # applies only to line1
    tooltips=
    """
    ....
    """)

self.figure.add_tools(hover)

1 个答案:

答案 0 :(得分:0)

可能的解决方法是将悬停模式更改为“vline”。这意味着当用户在绘图窗口的任何位置从左向右移动鼠标时,将显示悬停。然后,您可以将悬停工具提示限制为仅在字形上,就像您已经完成的那样。

显然,如果这不可取,我不确定目前是否有更好的方法,所以它可能只需要在短期内工作/直到解决。

当您第一次实例化hovertool时,可以根据“mode”属性下的散景文档设置Vline。 http://bokeh.pydata.org/en/latest/docs/reference/models/tools.html#bokeh.models.tools.HoverTool.mode