Я сделал гистограмму боке и таблицу данных из pandas отображения фрейма данных рядом друг с другом на веб-странице, используя django. Я хочу щелкнуть гистограмму и изменить отображаемые строки таблицы данных в зависимости от заголовка гистограммы.
Я привел пример ниже. Основываясь на примере, я хочу щелкнуть полосу на гистограмме и получить имя полосы (одна из этикеток с фруктами). Затем я хочу отфильтровать фрейм данных (просто список в примере), если имя столбчатой диаграммы совпадает со строкой в столбце. Например: если я нажму на полосу гистограммы под названием «яблоко», должны отобразиться строки фрейма данных, в которых значение столбца «слово» равно яблоку.
Я пытался сделать это с помощью js_on_event и js_on_change но не смог ничего прочитать. Есть какой-либо способ сделать это? Или даже просто прочитать название столбца при нажатии?
def indexPage(request):
fruits = ["apple", "banana","carrot","daikon","eggplant","fig","grape"]
count = [1,2,3,4,5,6,7]
data = {'fruits' : fruits,
'count' : count}
source = ColumnDataSource(data=data)
p = figure(y_range=fruits, sizing_mode='scale_width',toolbar_location='right',tools=['tap', 'reset'])
p.hbar(y='fruits', right="count",height=0.9,selection_color='deepskyblue', nonselection_color='lightgray',nonselection_alpha=0.3,source=source)
hover = HoverTool(tooltips=[("word","@fruits"),("count","@count")])
p.add_tools(hover)
script, div = components(p)
########################################################################################################
text = ["apples r red", "banana is yelo","carrt is loong","daikon is long","eggplants r","figs are the food","grape is red"]
word = ["apple", "banana","carrot","daikon","eggplant","fig","grape"]
data1 = {'text' : text}
source = ColumnDataSource(data=data1)
dt = DataTable(columns=[TableColumn(field='text', title='text')],source=source)
script1, div1 = components(dt)
return render(request, "index.html", {'script':script, 'div':div, "script1":script1,"div1":div1})