Инструмент для маркировки и наведения Bokeh для диаграммы, python - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь построить гистограмму, в которой у меня есть три легенды (три разных гистограммы) в сочетании с hoverTool.

На данный момент я построил гистограммы с легендой, но у меня проблемы с HoverTool. В приведенном ниже коде инструмент наведения показывает все три подсказки для всех графиков. Я только хочу, чтобы hovertool показывал одну из подсказок, поэтому, например, для гистограммы «popPer c» я хочу видеть только «@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)

Надеюсь, что кто-то может помочь, заранее спасибо! :)

1 Ответ

1 голос
/ 30 апреля 2020

Прочитав статью sugested, я понял это. Изменяя блок кода для 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')]))
...