首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带dataframe的bqplot工具提示

使用带dataframe的bqplot工具提示
EN

Stack Overflow用户
提问于 2019-10-08 00:40:35
回答 1查看 999关注 0票数 0

使用小部件显示csv文件/dataframe中的代码片段,并将其提要到bqplot属性

我试图显示某些信息(如年龄组,收入,肥胖水平等)。对于美国的每个州都使用bqplot。我能够用上提供的例子绘制美国地图。但是工具提示构造函数使用来自json文件的列名,该文件也用于实际显示映射。我不知道如何覆盖它,因此,我决定使用一个小部件(理想情况下是一个容器小部件)来保存我想为每个状态显示的数据,并使用bqplot.map中提供的bqplot.map()方法;实际上,我只是修改了下面链接中的代码:

Container as tooltip doesn't show contents

显示特定状态的信息

代码语言:javascript
复制
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

  1. I无法理解如何根据值“肥胖”和“不肥胖”来更改每个状态中的颜色;
  2. 我使用了bqplot示例中的代码片段和堆栈溢出上的链接,但当我悬停到另一个状态时,不知道如何更改信息;目前df_temp只保存一种状态的值,并且该值显示在地图上的任何位置。如何使小部件获取相关数据?

2.1基本上,我需要它以表格格式显示结果:

代码语言:javascript
复制
State:NY
Status: Not Obese
Age_group | Obese | Not_obese
<18       |  %    |  %
19-30     |  %    |  %

我拥有上述所有字段的数据,作为每个状态的数据帧中的列。我对ipywidget和bqplot很陌生。因此,任何帮助都将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-08 08:57:51

关于第2点:

在您的hover_handler代码中,您需要捕获传递给函数的信息,并使用它过滤您的主数据(df)。尝试将您的hover_handler代码更改为下面的代码,并查看传递给该函数的信息。然后计算出如何使用这些信息将数据过滤到相应的状态。

代码语言:javascript
复制
    def hover_handler(map, hover_event):
            out.clear_output()
            with out:
                print(hover_event)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58278783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档