首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法理解的类型:从ipywidget下拉菜单中选择值后出现的“Bunch”

TypeError:无法理解的类型:从ipywidget下拉菜单中选择值后出现的“Bunch”
EN

Stack Overflow用户
提问于 2021-02-25 08:41:46
回答 1查看 195关注 0票数 0

在从ipywidget下拉菜单中选择了值之后,我得到了TypeError:不可理解的类型:'Bunch‘。我知道testEvent函数本身工作得很好。

代码语言:javascript
复制
testDict = {
'A': {'mean': 1354.95,'median': 1387.0},
'B': {'mean': 2252.52,'median': 1110.0},
'C': {'mean': 541.69,'median': 572.0},
'D': {'mean': 970.01,'median': 983.62}}
代码语言:javascript
复制
import ipywidgets as widgets
from IPython.display import display
from branca.colormap import linear

dropdownMenu = widgets.Dropdown(options=['mean','median'],value='mean',description='Column:')
widgetOutput = widgets.Output()

def colEvent(col):   
    widgetOutput.clear_output()
    colorDic = {}
    namesList = ['A', 'B', 'C', 'D', 'E']
    with widgetOutput:
        colormap = linear.YlGn_09.scale(
            min(nest[col] for nest in testDict.values()),
            max(nest[col] for nest in testDict.values()))
        for name in namesList:
            if testDict.get(name):        
                colorDic[name] = {}
                colorDic[name]=colormap(testDict.get(name).get(col))
            else:
                colorDic[name] = {}
                colorDic[name] = '#ffffffff'

dropdownMenu.observe(colEvent, names='value')
display(dropdownMenu)
display(widgetOutput)

例如,从菜单中选择中位数后的结果应该如下所示:

代码语言:javascript
复制
{'A': '#004529ff',
 'B': '#38a056ff',
 'C': '#ffffe5ff',
 'D': '#76c578ff',
 'E': '#ffffffff'}

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-02-25 10:34:18

好吧,我现在知道问题出在哪里了。我需要将"col“变量更改为col.new,然后它就可以工作了。

代码语言:javascript
复制
def colEvent(col):   
    widgetOutput.clear_output()
    colorDic = {}
    namesList = ['A', 'B', 'C', 'D', 'E']
    with widgetOutput:
        colormap = linear.YlGn_09.scale(
                min(nest[col.new] for nest in testDict.values()),
                max(nest[col.new] for nest in testDict.values()))
        for name in namesList:
            if testDict.get(name):        
               colorDic[name] = {}
               colorDic[name]=colormap(testDict.get(name).get(col.new))
            else:
               colorDic[name] = {}
               colorDic[name] = '#ffffffff'
    display(colorDic)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66365065

复制
相关文章

相似问题

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