plotly dash學(xué)習(xí)(一)

plotly Dash可以將我們用plotly畫(huà)出的圖片或者基于地圖的展示通過(guò)交互式可視化的方式表達(dá)出來(lái),我們可以定制Select標(biāo)簽,Radio標(biāo)簽,Input標(biāo)簽,Table表格,Graph圖件,Map地圖控件等等的一些HTML元素通過(guò)傳入數(shù)據(jù)以及控件交互,使得所有要素嵌入到一個(gè)單頁(yè)面中,便于我們?nèi)ッ枋鲆环N現(xiàn)象,一篇論文,甚至是一種想法。我先貼出一個(gè)官方的demo,詳細(xì)的解釋一下dash的構(gòu)成,然后再給出一個(gè)稍微復(fù)雜的demo進(jìn)行進(jìn)一步的講解,show the code

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
# 初始化一個(gè)輸入框和一個(gè)div標(biāo)簽內(nèi)容頁(yè)
app.layout = html.Div([
    dcc.Input(id='my-id', value='initial value', type='text'),
    html.Div(id='my-div')
])


@app.callback(
    Output(component_id='my-div', component_property='children'),
    [Input(component_id='my-id', component_property='value')]
)
def update_output_div(input_value):
    return 'You\'ve entered "{}"'.format(input_value)


if __name__ == '__main__':
    app.run_server(debug=True)

這是一個(gè)簡(jiǎn)單的demo,有一個(gè)輸入框,一個(gè)輸出的div,當(dāng)輸入框中的數(shù)據(jù)改變后,div中的值也跟著改變,現(xiàn)在看一下這個(gè)程序的結(jié)構(gòu)。

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

上面這一部分是代表當(dāng)前頁(yè)面的CSS,plotly官方有很多自己的css庫(kù),也可以自己定制自己的css代碼,官方的教程配置鏈接。

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

上面這一部分是初始化當(dāng)前的dash頁(yè)面

app.layout = html.Div([
    dcc.Input(id='my-id', value='initial value', type='text'),
    html.Div(id='my-div')
])

上面這一部分是初始化當(dāng)前頁(yè)面的一些標(biāo)簽元素,如input標(biāo)簽,div標(biāo)簽等等吧,設(shè)置元素標(biāo)簽的id,類型等等吧,以及初始化元素的值。

@app.callback(
    Output(component_id='my-div', component_property='children'),
    [Input(component_id='my-id', component_property='value')]
)
def update_output_div(input_value):
    return 'You\'ve entered "{}"'.format(input_value)

上面這一部分為注解執(zhí)行部分,包括輸入部分和輸出部分,以及執(zhí)行的回調(diào)函數(shù),輸入部分為從哪獲取數(shù)據(jù)數(shù)據(jù)進(jìn)行交互,輸出部分為將獲得的數(shù)據(jù)進(jìn)行函數(shù)運(yùn)算后輸出的組件,回調(diào)函數(shù)是獲得輸入值后進(jìn)行運(yùn)算所執(zhí)行的函數(shù)。當(dāng)前回調(diào)函數(shù)執(zhí)行的就是格式化輸出我們的輸入到input標(biāo)簽中的value。
這樣我們看完Dash App的結(jié)構(gòu)就很清楚了,分為以下3個(gè)主要部分:

  1. 頁(yè)面的CSS元素信息
  2. 頁(yè)面的HTML要素的信息
  3. 頁(yè)面的交互執(zhí)行信息
    我們每次編寫一個(gè)自己的APP的時(shí)候可以按照這個(gè)思路來(lái)組織我們的APP,每個(gè)頁(yè)面的元素的詳細(xì)講解,可能以后逐漸通過(guò)各個(gè)demo來(lái)逐步熟悉。
    程序執(zhí)行結(jié)果如下圖:


    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【Dash系列】Python的Web可視化框架Dash(1)---簡(jiǎn)介【Dash系列】Python的Web可視化框...
    惑也閱讀 73,117評(píng)論 2 62
  • 瀏覽器與服務(wù)器的基本概念 瀏覽器(安裝在電腦里面的一個(gè)軟件) 作用: ①將網(wǎng)頁(yè)內(nèi)容渲染呈現(xiàn)給用戶查看。 ②讓用戶通...
    云還灬閱讀 1,295評(píng)論 0 0
  • 前端開(kāi)發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化,入門級(jí)到專家級(jí),廣度和深度都會(huì)有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,694評(píng)論 0 7
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,880評(píng)論 0 3
  • 沒(méi)想到是最后一眼,我回望的時(shí)候怎會(huì)知道時(shí)間如此不饒人。 兩個(gè)多月前我來(lái)到一個(gè)陌生的城市去完成我的學(xué)業(yè)。面對(duì)一群...
    可口可樂(lè)的樂(lè)閱讀 311評(píng)論 0 1

友情鏈接更多精彩內(nèi)容