【问题标题】:Bokeh label and hover tool for barchart, python用于条形图、python 的散景标签和悬停工具
【发布时间】:2020-04-28 09:04:52
【问题描述】:

我正在尝试构建一个条形图,其中包含三个图例(因此三个不同的条形图)和一个 hoverTool。

目前我已经用图例构建了条形图,但是我在使用 HoverTool 时遇到了问题。在下面显示的代码中,悬停工具显示了所有图表的所有三个工具提示。我只希望悬停工具显示其中一个工具提示,例如对于条形图“popPerc”,我只想在悬停工具中看到“@population”。

p = figure(x_range=df2.district,plot_height=300,plot_width=500,
           y_range= ranges.Range1d(start=0,end=25))

p.xgrid.grid_line_color=None
p.ygrid.grid_line_color=None
p.y_range.start = 0
p.xaxis.major_label_orientation = 0.5
p.yaxis.visible = False
p.toolbar_location=None
p.outline_line_color = None
colors = all_palettes['BuGn'][3]
bar = {}
items = []
color = 0

features = ['popPerc','areaPerc','treesPerc']

for indx,i in enumerate(features):
    bar[i] = p.vbar(x='district', top=i, source=df2, muted_alpha=0, muted=False,
                   width= 0.8, color=colors[color])
    items.append((i,[bar[i]]))
    color+=1

legend = Legend(items=items,location=(0,100))
p.add_tools(HoverTool(tooltips = [('Trees','@trees'),
                                  ('Population','@population'),
                                  ('Area [km^2]','@area')]))
p.add_layout(legend,'left')
p.legend.click_policy='hide'
show(p)

希望有人能提供帮助,在此先感谢! :)

【问题讨论】:

  • 您能否添加示例图片,或者 - 甚至更好 - 包括一些示例数据,我发现很难想象您的图形到底是什么样子。我试图只获取一些无意义的数据,但这些导致了“奇怪”的图表(标签没有真正意义)。我想你可能正在寻找this SO question
  • 当然,很抱歉一开始就没有这样做!这是数据帧的 sn-p,它也应该与代码一起使用:df2 = pd.DataFrame(data={'district': ['Indre By','Vesterbro','Valby'], 'popPerc': [8.9,11.6,9.6], 'areaPerc': [10,9.1,10.3], 'treesPerc': [10.7,11.8,8.6], 'trees': [6105,6710,4878], 'area': [9,8.2,9.2], 'population': [55866,72688,60308]})

标签: python bokeh


【解决方案1】:

在阅读了所建议的文章后,我想通了。通过将 hovertool 的代码块更改为以下内容即可。

p.add_tools(HoverTool(renderers=[items[0][1][0]], tooltips = [('Population','@population')]))
p.add_tools(HoverTool(renderers=[items[1][1][0]], tooltips = [('Area [km^2]','@area')]))
p.add_tools(HoverTool(renderers=[items[2][1][0]], tooltips = [('Trees','@trees @treePerc')]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多