你好,我是郭震
這篇文章,探討 Dash
—— 一個(gè)由 Plotly 開(kāi)發(fā)的優(yōu)秀 Python 框架,專(zhuān)為構(gòu)建豐富的網(wǎng)絡(luò)分析應(yīng)用而設(shè)計(jì)。
推薦使用這個(gè)Python工具包!
Dash 使得數(shù)據(jù)分析師能夠使用 Python 創(chuàng)建互動(dòng)式的 web 應(yīng)用,而無(wú)需深入了解復(fù)雜的前端技術(shù)如 HTML 或 JavaScript。
要開(kāi)始使用 Dash,首先需要通過(guò) pip 安裝:
pip?install?dash
Dash 的核心優(yōu)勢(shì)在于其能夠讓用戶以非常直觀的方式構(gòu)建出包含豐富數(shù)據(jù)可視化組件的 web 應(yīng)用。
Dash 應(yīng)用由兩大部分組成:布局(Layout)和交互回調(diào)(Callbacks)。
布局定義了應(yīng)用的外觀和排列方式,而回調(diào)則定義了應(yīng)用的互動(dòng)性。
讓我們通過(guò)兩個(gè)示例來(lái)進(jìn)一步了解 Dash 的應(yīng)用。
示例 1:基礎(chǔ)數(shù)據(jù)可視化應(yīng)用
假設(shè)我們想展示一個(gè)簡(jiǎn)單的圖表,顯示不同種類(lèi)的鳶尾花的花瓣長(zhǎng)度分布,我們可以這樣做:
import?dash
import?dash_core_components?as?dcc
import?dash_html_components?as?html
import?plotly.express?as?px
#?加載數(shù)據(jù)
df?=?px.data.iris()
#?初始化?Dash?應(yīng)用
app?=?dash.Dash(__name__)
#?定義應(yīng)用布局
app.layout?=?html.Div([
????html.H1("鳶尾花數(shù)據(jù)可視化"),
????dcc.Graph(
????????figure=px.histogram(df,?x="petal_length",?color="species",?barmode="group")
????)
])
if?__name__?==?'__main__':
????app.run_server(debug=True)
此示例創(chuàng)建了一個(gè)簡(jiǎn)單的 Dash 應(yīng)用,展示了一個(gè)按種類(lèi)分組的鳶尾花花瓣長(zhǎng)度的直方圖。
生成前端網(wǎng)頁(yè),支持交互:
點(diǎn)擊某個(gè)分類(lèi),隱藏顯示此類(lèi),從而非常容易地得到去除一個(gè)分類(lèi)后的結(jié)果圖:
示例 2:交互式數(shù)據(jù)探索應(yīng)用
進(jìn)一步地,我們可以添加一些交互元素,比如下拉菜單,讓用戶選擇不同的數(shù)據(jù)維度進(jìn)行查看:
import?dash
from?dash?import?dcc,?html,?Input,?Output
import?plotly.express?as?px
app?=?dash.Dash(__name__)
df?=?px.data.iris()
app.layout?=?html.Div([
????html.H1("鳶尾花數(shù)據(jù)探索"),
????dcc.Dropdown(
????????id='dropdown',
????????options=[{"value":?x,?"label":?x}?for?x?in?df.columns],
????????value=df.columns[0],
????????clearable=False,
????),
????dcc.Graph(id="bar-chart"),
])
@app.callback(
????Output("bar-chart",?"figure"),?
????[Input("dropdown",?"value")]
)
def?update_bar_chart(dimension):
????fig?=?px.histogram(df,?x=dimension,?color="species")
????return?fig
if?__name__?==?'__main__':
????app.run_server(debug=True)
在這個(gè)示例中,用戶可以通過(guò)下拉菜單選擇不同的維度(如花瓣長(zhǎng)度、花瓣寬度等),圖表會(huì)相應(yīng)地更新顯示所選維度的分布情況。
通過(guò)這兩個(gè)示例,我們可以看到,Dash 提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的 web 應(yīng)用。無(wú)論是簡(jiǎn)單的數(shù)據(jù)展示還是復(fù)雜的交互式數(shù)據(jù)分析,Dash 都能夠勝任。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-836845.html
閱讀更多,請(qǐng)?jiān)L問(wèn):https://zglg.work。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-836845.html
到了這里,關(guān)于Dash,方便創(chuàng)建「交互式」Web圖表!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!