午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

Python Dash快速web應(yīng)用開(kāi)發(fā)

 只怕想不到 2024-10-19

圖片

Python+Dash快速web應(yīng)用開(kāi)發(fā)

簡(jiǎn)單介紹

Dash是構(gòu)建ML與數(shù)據(jù)科學(xué)Web應(yīng)用的最受歡迎、最受信賴的Python框架。它建立在Plotly.js、React 和 Flask的基礎(chǔ)上,將現(xiàn)代 UI 元素(如下拉框、滑塊和圖表)直接與您的分析 Python 代碼綁定在一起。

安裝

pip install dash

pip install pandas


資料

文檔

https://dash./

倉(cāng)庫(kù)

https://github.com/plotly/dash


一個(gè)簡(jiǎn)易Dash應(yīng)用

圖片
# pip install dash
# 注意: 文件名稱(chēng)要叫app.py,不然代碼啟動(dòng)不了(不知道為啥,后來(lái)就又可以了,我是用的是vscode)
# 導(dǎo)入Dash庫(kù),用于創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用,導(dǎo)入html模塊,用于創(chuàng)建網(wǎng)頁(yè)布局,導(dǎo)入dcc模塊,用于創(chuàng)建交互組件
from dash import Dash, html, dcc, callback, Output, Input
# 導(dǎo)入plotly.express庫(kù),用于數(shù)據(jù)可視化
import plotly.express as px
# 導(dǎo)入pandas庫(kù),用于數(shù)據(jù)處理
import pandas as pd
# 從GitHub上讀取數(shù)據(jù),并存儲(chǔ)為DataFrame
df = pd.read_csv('https://raw./plotly/datasets/master/gapminder_unfiltered.csv')
# 創(chuàng)建Dash應(yīng)用實(shí)例
app = Dash()
# 定義Dash應(yīng)用的布局
app.layout = [
    # 添加標(biāo)題
    html.H1(children='Title of Dash App', style={'textAlign':'center'}),
    # 添加下拉菜單,用于選擇國(guó)家
    dcc.Dropdown(df.country.unique(), 'Canada', id='dropdown-selection'),
    # 添加圖形展示區(qū)域,具體圖形根據(jù)下拉菜單選擇的結(jié)果動(dòng)態(tài)更新
    dcc.Graph(id='graph-content')
]
# 創(chuàng)建回調(diào)函數(shù),根據(jù)下拉菜單的選擇更新圖形內(nèi)容
@callback(
    Output('graph-content''figure'),
    Input('dropdown-selection''value')
)
def update_graph(value):
    # 根據(jù)選擇的國(guó)家篩選數(shù)據(jù)
    dff = df[df.country==value]   
    # 返回該國(guó)家的人口隨年份變化的折線圖
    return px.line(dff, x='year', y='pop')

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

# http://127.0.0.1:8050/

圖片

下面通過(guò)更多的例子,來(lái)學(xué)習(xí)下Dash的用法:

Connecting to Data 連接數(shù)據(jù)

圖片

# Import packages
from dash import Dash, html, dash_table
import pandas as pd

# Incorporate data
df = pd.read_csv('https://raw./plotly/datasets/master/gapminder2007.csv')

# Initialize the app
app2 = Dash()

# App layout
app2.layout = [
    html.Div(children='My First App with Data'),
    dash_table.DataTable(data=df.to_dict('records'), page_size=10)
]

# Run the app
if __name__ == '__main__':
    app2.run(debug=True)

Visualizing Data 可視化數(shù)據(jù)

圖片
可視化數(shù)據(jù)
# Import packages
from dash import Dash, html, dash_table, dcc
import pandas as pd
import plotly.express as px

# Incorporate data
df = pd.read_csv('https://raw./plotly/datasets/master/gapminder2007.csv')

# Initialize the app
app = Dash()

# App layout
app.layout = [
    html.Div(children='My First App with Data and a Graph'),
    dash_table.DataTable(data=df.to_dict('records'), page_size=10),
    dcc.Graph(figure=px.histogram(df, x='continent', y='lifeExp', histfunc='avg'))
]

# Run the app
if __name__ == '__main__':
    app.run(debug=True)

Dash Mantine Components 達(dá)什·馬汀組件

圖片
達(dá)什·馬汀組件
from dash import Dash, dash_table, dcc, callback, Output, Input
import pandas as pd
import plotly.express as px
import dash_mantine_components as dmc

df = pd.read_csv('https://raw./plotly/datasets/master/gapminder2007.csv')

app = Dash()

app.layout = dmc.Container([
    dmc.Title('My First App with Data, Graph, and Controls', color='blue', size='h3'),
    dmc.RadioGroup(
            [dmc.Radio(i, value=i) for i in  ['pop''lifeExp''gdpPercap']],
            id='my-dmc-radio-item',
            value='lifeExp',
            size='sm'
        ),
    dmc.Grid([
        dmc.Col([
            dash_table.DataTable(data=df.to_dict('records'), page_size=12, style_table={'overflowX''auto'})
        ], span=6),
        dmc.Col([
            dcc.Graph(figure={}, id='graph-placeholder')
        ], span=6),
    ]),

], fluid=True)

@callback(
    Output(component_id='graph-placeholder', component_property='figure'),
    Input(component_id='my-dmc-radio-item', component_property='value')
)
def update_graph(col_chosen):
    fig = px.histogram(df, x='continent', y=col_chosen, histfunc='avg')
    return fig

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多