在从ipywidget下拉菜单中选择了值之后,我得到了TypeError:不可理解的类型:'Bunch‘。我知道testEvent函数本身工作得很好。
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}}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)例如,从菜单中选择中位数后的结果应该如下所示:
{'A': '#004529ff',
'B': '#38a056ff',
'C': '#ffffe5ff',
'D': '#76c578ff',
'E': '#ffffffff'}谢谢。
发布于 2021-02-25 10:34:18
好吧,我现在知道问题出在哪里了。我需要将"col“变量更改为col.new,然后它就可以工作了。
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)https://stackoverflow.com/questions/66365065
复制相似问题