因此,我绘制并显示了各种行的悬停工具提示,如下所示:
def plotter(results, title):
results = results.rename(columns = dict(zip(results.columns, [col.strip().replace(' ','_') for col in results.columns])))
source = ColumnDataSource(results)
p = figure(plot_width=600, plot_height=300)
for color, col in enumerate(results.columns):
glyph = Circle(x='month', y=col,
#source=source,
size=3, line_color=Turbo256[color*5], fill_color = Turbo256[color*5])
p.add_glyph(source, glyph)
p.line(x='month', y = col, source = source, color = Turbo256[color*5], line_width = 1)
p.title.text = f"Monthly rates trends Based on {title.replace('_',' ').title()} "
p.xaxis.axis_label = 'Months'
p.yaxis.axis_label = 'Rates'
hover=HoverTool(show_arrow=False, line_policy='next', tooltips = [
(col.replace('_',' ').title(), f'@{col}') for col in results.columns] )
p.add_tools(hover)
show(p)
虽然这很好用,但当我在图表上悬停一个点时,它会显示每条线的工具提示。我不想显示所有的工具提示。我只想让这些工具提示显示光标当前所在的位置。就像如果光标在一条线上,则只会显示一个关于该线的工具提示,如果光标在两条线所在的某个点上,它可能会显示两个等等的工具提示。我一直在尝试使用CustomJS
,但还没有找到一个方法。任何关于这方面的帮助将是非常有帮助的。
1条答案
按热度按时间vxqlmq5t1#
这可能在另一个问题中得到解决:"How to show a single value when hovering a Multiline glyph in Bokeh?"
技巧是使用
'$data_x'
和/或'$data_y'
作为散景“特殊字段”: