您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Python可視化Dash工具回調(diào)的使用方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
Dash中的「回調(diào)」(callback)是以裝飾器的形式,配合自編回調(diào)函數(shù),實(shí)現(xiàn)前后端異步通信交互。
回調(diào)可以實(shí)現(xiàn)單一輸入,單一輸出;單一輸入,多個(gè)輸出;多個(gè)輸入,多個(gè)輸出;單一/多個(gè)輸入,單一/多個(gè)輸出,只要參數(shù)名稱(chēng)不一樣就行。
回調(diào)比較方便協(xié)同前后端的異步交互。
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('根據(jù)省名查詢(xún)省會(huì)城市:'),
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( # 功能性組件, 設(shè)定id值作為標(biāo)簽關(guān)聯(lián)callback函數(shù)中的標(biāo)簽
id='gender',
options=[{'label': i, 'value': i} for i in ['女人', '男人']],
value='女人'),
]),
html.P('測(cè)試多個(gè)輸入單個(gè)輸出:',id='multinputsimpleoutput'),
html.P('測(cè)試多個(gè)輸入單個(gè)輸出,相同輸入變量輸出不同變量:',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('測(cè)試多個(gè)輸入多個(gè)輸出1:',id='multinputmultoutput1'),
html.P('測(cè)試多個(gè)輸入多個(gè)輸出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]
# 多個(gè)輸入,單一輸出
@app.callback(Output('multinputsimpleoutput','children'),[Input('province','value'),Input('gender','value')])
def province2city(province,gender):
return province2city_dict[province]+' '+gender
# 多個(gè)輸入,單一輸出,允許相同輸入?yún)?shù),返回不同輸出參數(shù);相同輸出參數(shù)會(huì)報(bào)錯(cuò)
@app.callback(Output('multinputsimpleoutput2','children'),[Input('province','value'),Input('gender','value')])
def province2city(province,gender):
return province2city_dict[province]+' '+gender+' 返回到不同參數(shù)'
# 多個(gè)輸入,多個(gè)輸出
@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
看完上述內(nèi)容,你們對(duì)Python可視化Dash工具回調(diào)的使用方法有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。