溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python可視化Dash工具回調(diào)的使用方法

發(fā)布時(shí)間:2021-10-09 17:20:56 來(lái)源:億速云 閱讀:189 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(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è)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI