Использование виджета для отображения фрагментов из файла / файла данных csv и подачи в атрибут всплывающей подсказки bqplot
Я пытаюсь отобразить определенную информацию (статистику, такую как возрастная группа, доход, уровни ожирения и т. Д.) Для каждогоштат в США, используя bqplot. Я могу построить карту США, используя примеры, представленные на bqplot github. Но конструктор всплывающей подсказки использует имена столбцов из файла json, который также используется для отображения карты. Я не знаю, как это переопределить, поэтому я решил использовать виджет (в идеале контейнерный виджет) для хранения данных, которые я хочу отображать для каждого состояния, и использовать метод on_hover (), предоставленный в bqplot.map;На самом деле, я только что изменил код по ссылке ниже:
Контейнер, так как подсказка не показывает содержимое
для отображения информации для определенного состояния
import bqplot
import pandas as pd
import ipywidgets as ipw
from IPython.display import display, clear_output
res = pd.read_csv('data_files/clean_data.csv')
df = pd.DataFrame(res)
## using values for only one state
df_temp = df[df['State'] == 'NY']
out = ipw.Output()
def hover_handler(self,Dataframe):
out.clear_output()
with out:
display(ipw.HTML(df_temp.to_html()))
geo = AlbersUSA()
scale_s = OrdinalColorScale(domain=['Obese', 'Not Obese'], colors=['Red', 'Green'])
st_green = dict(zip(df['State'], list(obesity_list)))
geo = AlbersUSA()
scale_s = OrdinalColorScale(domain=['Obese', 'Not Obese'], colors=['Red', 'Green'])
map_args = {'color': st_green,
'scales': {'projection': geo, 'color': scale_s},
'colors': {'default_color': 'Black'}}
s_map = plt.geo(map_data='USStatesMap', **map_args)
s_map.toolip = out # I am pointing tooltip to the out object
s_map.on_hover(hover_handler)
s_map
Я не могу понять, как изменить цвет в каждом состоянии на основе значений «Ожирение» и «Не ожирение»;
Я использовал фрагментыкод из примера bqplot и ссылка выше на stackoverflow, но я не знаю, как изменить информацию при переходе в другое состояние;В настоящее время df_temp
содержит значения только для одного состояния, и оно отображается везде, где я нахожу курсор на карте. Как я могу заставить виджет извлекать релевантные данные?
2.1 По сути, мне нужно, чтобы результаты отображались в табличном формате:
State:NY
Status: Not Obese
Age_group | Obese | Not_obese
<18 | % | %
19-30 | % | %
У меня есть данные для всех полей выше в виде столбцов в кадре данных для КАЖДОГОгосударство. Я новичок в ipywidgets и bqplot. Так что любая помощь будет принята с благодарностью.
Спасибо!