具有散景的Python BoxPlot-悬停时显示多个数据点

时间:2019-05-07 08:42:02

标签: python bokeh

我对BoxPlot代码的基本TOOLTIPS

TOOLTIPS = """
            <div style="background-color:orange;">
                <div>
                    <span style="font-size: 15px; color: #966;">@name</span>
                </div>

                <div>
                    <span style="font-size: 10px; color: black;">($y{int})</span>
                </div>
            </div>
        """                        

当我将鼠标悬停在BoxPlot晶须上时,会显示多个数据点。甚至不确定Bokeh是否可以接受这种行为,我认为这是我的编码错误。

p = figure(tools="", background_fill_color="#efefef", x_range=cats,plot_width=195, plot_height=550,tooltips=TOOLTIPS)

摘自官方散景示例的胡须代码:-

# whiskers (almost-0 height rects simpler than segments)
p.rect(cats, lower.height, 0.2, 0.01, line_color="black")

我的图显示了多个数据点,如下所示-不知道在哪里查找错误/自己的编码错误。请注意,悬停工具[PLUS Shaped Cursor]在屏幕捕获中不可见,而在获取屏幕捕获时,它位于显示的两个数据的“较低”数据点上方。

enter image description here

1 个答案:

答案 0 :(得分:1)

据我在代码中看到的,您在tooltip级别定义了figure,因此在其中具有多个字形(2个段,2个vbar,2个rect,1个圆)会导致多个工具提示正在显示。

我建议您创建一个HoverTool并为它明确指定渲染器,如下所示:

from bokeh.models import HoverTool

p = figure(tools="", background_fill_color="#efefef", x_range=cats,plot_width=195, plot_height=550)

b1 = p.vbar(cats, 0.7, q2.height, q3.height, fill_color="#E08E79", line_color="black")
b2 = p.vbar(cats, 0.7, q1.height, q2.height, fill_color="#3B8686", line_color="black")

hover = HoverTool(tooltips = TOOLTIPS, renderers = [b1, b2])
p.add_tools(hover)