使用小部件显示csv文件/dataframe中的代码片段,并将其提要到bqplot属性
我试图显示某些信息(如年龄组,收入,肥胖水平等)。对于美国的每个州都使用bqplot。我能够用上提供的例子绘制美国地图。但是工具提示构造函数使用来自json文件的列名,该文件也用于实际显示映射。我不知道如何覆盖它,因此,我决定使用一个小部件(理想情况下是一个容器小部件)来保存我想为每个状态显示的数据,并使用bqplot.map中提供的bqplot.map()方法;实际上,我只是修改了下面链接中的代码:
Container as tooltip doesn't show contents
显示特定状态的信息
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_mapdf_temp只保存一种状态的值,并且该值显示在地图上的任何位置。如何使小部件获取相关数据?2.1基本上,我需要它以表格格式显示结果:
State:NY
Status: Not Obese
Age_group | Obese | Not_obese
<18 | % | %
19-30 | % | %我拥有上述所有字段的数据,作为每个状态的数据帧中的列。我对ipywidget和bqplot很陌生。因此,任何帮助都将不胜感激。
谢谢!
发布于 2019-10-08 08:57:51
关于第2点:
在您的hover_handler代码中,您需要捕获传递给函数的信息,并使用它过滤您的主数据(df)。尝试将您的hover_handler代码更改为下面的代码,并查看传递给该函数的信息。然后计算出如何使用这些信息将数据过滤到相应的状态。
def hover_handler(map, hover_event):
out.clear_output()
with out:
print(hover_event)https://stackoverflow.com/questions/58278783
复制相似问题