您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關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工具回調的使用方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。