使用widget显示csv文件/数据帧的片段,并将其馈送到bqplot的工具提示属性
我试图用bqplot显示美国各州的某些信息(如年龄组、收入、肥胖水平等)。我能够使用bqplot github上提供的示例绘制美国地图。但是工具提示构造函数使用json文件中的列名,该文件也用于实际显示地图。我不知道如何覆盖它,所以我决定使用一个小部件(理想情况下是一个容器小部件)来保存我要为每个状态显示的数据,并使用中提供的on_hover()方法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_map
每个肥胖状态下的颜色都不能改变
我在stackoverflow上使用了bqplot示例中的代码片段和上面的链接,但我不知道如何在悬停到另一个状态时更改信息;当前df_temp
只保存一个状态的值,并且在我悬停在地图上的任何地方都会显示。如何让widget获取相关数据?
2.1本质上,我需要它以表格格式显示结果:
^{pr2}$我把上面所有字段的数据作为每个状态的数据帧中的列。我是ipywidgets和bqplot的新手。所以,任何帮助都将不胜感激。在
谢谢你!在
对于第2点:
在
hover_handler
代码中,需要捕获传递给函数的信息,并使用它来过滤主数据帧(df
)。请尝试将hover_handler
代码更改为下面的代码,并查看传递给函数的信息。然后找出如何使用这些信息来过滤数据帧,使其仅处于相关状态。在相关问题 更多 >
编程相关推荐