千家信息网

Python可视化Dash工具回调的使用方法

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,今天就跟大家聊聊有关Python可视化Dash工具回调的使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Dash中的「回调」(callb
千家信息网最后更新 2024年09月22日Python可视化Dash工具回调的使用方法

今天就跟大家聊聊有关Python可视化Dash工具回调的使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Dash中的「回调」(callback)是以装饰器的形式,配合自编回调函数,实现前后端异步通信交互。

回调可以实现单一输入,单一输出;单一输入,多个输出;多个输入,多个输出;单一/多个输入,单一/多个输出,只要参数名称不一样就行。

回调比较方便协同前后端的异步交互。

province2city_dict = {
'四川省': '成都市',
'陕西省': '西安市',
'广东省': '广州市'
}
flowertype_dict = {
'setosa': '1',
'versicolor': '2',
'virginnica': '3'
}

app.layout=html.Div([html.Div('Div logo', id='logo'),
html.Div('Div header', id='header'),
html.Div([
html.Div([
html.Div('Div left-top', id='left-top'),
html.Div('Div left-middle', id='left-middle'),
html.Div('Div left-bottom', id='left-bottom'),
], id='mleft'),
html.Div([
html.H1('根据省名查询省会城市:'),
html.Br(),
dcc.Dropdown(id='province',
options=[{'label':'四川省','value':'四川省'},
{'label':'陕西省','value':'陕西省'},
{'label':'广东省','value':'广东省'}],
value='四川省'),
html.P(id='city'),
html.Div([
html.Label('Gender'),
html.Div([
dcc.Dropdown( # 功能性组件, 设定id值作为标签关联callback函数中的标签
id='gender',
options=[{'label': i, 'value': i} for i in ['女人', '男人']],
value='女人'),
]),
html.P('测试多个输入单个输出:',id='multinputsimpleoutput'),
html.P('测试多个输入单个输出,相同输入变量输出不同变量:',id='multinputsimpleoutput2'),
html.Label('flower type'),
html.Div([
dcc.Dropdown(
id='flowertype',
# options=[{'label':'setosa','value':'1'},
# {'label':'versicolor','value':'2'},
# {'label':'virginnica','value':'3'}],
options=[{'label': key, 'value': value} for (key,value) in flowertype_dict.items()],
value='1'),
]),
], className="dropdown"),
html.P('测试多个输入多个输出1:',id='multinputmultoutput1'),
html.P('测试多个输入多个输出2:',id='multinputmultoutput2')
], id='mmap'),
html.Div('mright',id='mright')
],id='main'),
html.Div('Div footer', id='footer')]
,id='container')
# 单一输入,单一输出
@app.callback(Output('city','children'),Input('province','value'))
def province2city(province):
return province2city_dict[province]

# 多个输入,单一输出
@app.callback(Output('multinputsimpleoutput','children'),[Input('province','value'),Input('gender','value')])
def province2city(province,gender):
return province2city_dict[province]+' '+gender

# 多个输入,单一输出,允许相同输入参数,返回不同输出参数;相同输出参数会报错
@app.callback(Output('multinputsimpleoutput2','children'),[Input('province','value'),Input('gender','value')])
def province2city(province,gender):

return province2city_dict[province]+' '+gender+' 返回到不同参数'






# 多个输入,多个输出
@app.callback([Output('multinputmultoutput1','children'),Output('multinputmultoutput2','children')],[Input('province','value'),Input('gender','value'),Input('flowertype','value')])
def province2city(province,gender,flowertype):
flowtypename=list(flowertype_dict.keys())[list(flowertype_dict.values()).index(flowertype)]
return province2city_dict[province]+' '+gender,flowtypename

看完上述内容,你们对Python可视化Dash工具回调的使用方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0