我对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]在屏幕捕获中不可见,而在获取屏幕捕获时,它位于显示的两个数据的“较低”数据点上方。
答案 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)