溫馨提示×

溫馨提示×

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

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

如何理解Python可視化Dash工具

發(fā)布時(shí)間:2021-10-18 17:22:35 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要介紹“如何理解Python可視化Dash工具”,在日常操作中,相信很多人在如何理解Python可視化Dash工具問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解Python可視化Dash工具”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Dash是基于Flask的Python可視化工具,嚴(yán)格說來由三個(gè)部分組成,首先是Flask提供了標(biāo)準(zhǔn)web環(huán)境,再次是plotly這個(gè)圖表可視化工具,最后是與dash相配套的html、圖表等交互式組件。本人也陸續(xù)試過pyechart,但就集成性和可視化而言,與dash還是有一定差距。

代碼示例

import dash --集成flask  import dash_core_components as dcc --與圖表相關(guān)的核心組件  import dash_html_components as html --與HTML交互相關(guān)的組件  import plotly.graph_objects as go --plotly的底層組件  import plotly.express as px --plotly的高階組件,同時(shí)提供了內(nèi)置的數(shù)據(jù)集    fig = go.Figure()  fig = go.Figure(data=go.Bar(y=[2, 3, 1]))  # fig.add_trace( ... )  # fig.update_layout( ... )    df = px.data.gapminder()  df = px.data.gapminder().query("country=='China'")  fig = px.line(df, x="year", y="lifeExp", title='人口增長率')    app = dash.Dash()  app.layout = html.Div([  dcc.Graph(figure=fig)  ])    app.run_server(debug=True, use_reloader=False)  ?

Plotly Express是對 Plotly.py  的高級封裝,內(nèi)置了大量實(shí)用、現(xiàn)代的繪圖模板,用戶只需調(diào)用簡單的API函數(shù),即可快速生成漂亮的互動圖表,可滿足90%以上的應(yīng)用場景。

plotly.express附帶了一些用于演示、教育和測試目的的內(nèi)置數(shù)據(jù)集。

這些數(shù)據(jù)以CSV格式存儲在包的目錄下,以pandas類型獲取到數(shù)據(jù),方便進(jìn)行圖表功能測試。

1、gapminder():每一行代表一個(gè)國家在給定的年份GDP、人口增長等信息。包含1704行和以下列:

['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap', 'iso_alpha', 'iso_num'].

2、tips():每行代表一張餐廳賬單。包含244行和以下列:

['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'].

3、iris():每行代表一朵花。包含150行和以下列:

['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species', 'species_id'].

4、wind():每行表示一個(gè)基本方向上的風(fēng)強(qiáng)度級別及其頻率。包含128行和以下列:

['direction', 'strength', 'frequency'].

5、election():每一行代表2013年蒙特利爾市長選舉中一個(gè)選區(qū)的投票結(jié)果。包含58行和以下列:

['district', 'Coderre', 'Bergeron', 'Joly', 'total', 'winner', 'result', 'district_id'].

6、election_geojson():每個(gè)功能代表2013年蒙特利爾市長選舉中的一個(gè)選區(qū)。

GeoJSON格式的“dict”,具有58個(gè)多邊形或多多邊形特征,其“id”是一個(gè)選區(qū)數(shù)字ID,其'district'屬性是ID和地區(qū)名稱。

7、carshare():每一行表示在蒙特利爾呆了一個(gè)月,區(qū)域中心附近的汽車共享服務(wù)的可用性。包含249行和以下列:

['centroid_lat', 'centroid_lon', 'car_hours', 'peak_hour'].

8、stocks(indexed=False):這一廣泛數(shù)據(jù)集中的每一行代表2018/2019年6只科技股的收盤價(jià)。包含100行和以下列:

['date', 'GOOG', 'AAPL', 'AMZN', 'FB', 'NFLX', 'MSFT'].

9、experiment(indexed=False):這個(gè)大數(shù)據(jù)集中的每一行代表100名模擬參與者在三個(gè)假設(shè)實(shí)驗(yàn)中的結(jié)果,以及他們的性別和對照/治療組。包含100行和以下列:

['experiment_1', 'experiment_2', 'experiment_3', 'gender', 'group'].

10、medals_wide(indexed=False):此數(shù)據(jù)集表示截至2020年前三名國家的奧運(yùn)會短道速滑獎(jiǎng)牌表。包含3行和以下列:

['nation', 'gold', 'silver', 'bronze'].

11、medals_long(indexed=False):此數(shù)據(jù)集表示截至2020年前三名國家的奧運(yùn)會短道速滑獎(jiǎng)牌表。包含9行和以下列:

['nation', 'medal', 'count'].

plotly.express提供了30多種標(biāo)準(zhǔn)圖表,用以簡化操作。

1、scatter:散點(diǎn)圖 在散點(diǎn)圖中,每行data_frame由2D空間中的符號標(biāo)記表示;

2、scatter_3d:三維散點(diǎn)圖 在3D散點(diǎn)圖中,每行data_frame由3D空間中的符號標(biāo)記表示;

3、scatter_polar:極坐標(biāo)散點(diǎn)圖 在極坐標(biāo)散點(diǎn)圖中,每行data_frame由極坐標(biāo)中的符號標(biāo)記表示;

4、scatter_ternary:三元散點(diǎn)圖 在三元散點(diǎn)圖中,每行data_frame由三元坐標(biāo)中的符號標(biāo)記表示;

5、scatter_mapbox:地圖散點(diǎn)圖 在Mapbox散點(diǎn)圖中,每一行data_frame都由Mapbox地圖上的符號標(biāo)記表示;

6、scatter_geo:地理坐標(biāo)散點(diǎn)圖 在地理散點(diǎn)圖中,每一行data_frame都由地圖上的符號標(biāo)記表示;

7、line:線條圖 在2D線圖中,每行data_frame表示為2D空間中折線標(biāo)記的頂點(diǎn);

8、line_3d:三維線圖 在三維線圖中,每行數(shù)據(jù)框都表示為三維空間中多段線標(biāo)記的頂點(diǎn)

9、line_polar:極坐標(biāo)線條圖 在極線圖中,每行data_frame表示為極坐標(biāo)中折線標(biāo)記的頂點(diǎn);

10、line_ternary:三元線條圖 在三元線圖中,每行data_frame表示為三元坐標(biāo)中折線標(biāo)記的頂點(diǎn);

11、line_mapbox:地圖線條圖 在Mapbox線圖中,每一行data_frame表示為Mapbox地圖上折線標(biāo)記的頂點(diǎn);

12、line_geo:地理坐標(biāo)線條圖 在地理線圖中,每一行data_frame表示為地圖上折線標(biāo)記的頂點(diǎn);

13、area:堆積區(qū)域圖 在堆積區(qū)域圖中,每行data_frame表示為2D空間中折線標(biāo)記的頂點(diǎn)。連續(xù)折線之間的區(qū)域被填充;

14、bar:條形圖 在條形圖中,每行data_frame表示為矩形標(biāo)記;

15、timeline:時(shí)間軸圖 在時(shí)間軸圖中,每一行數(shù)據(jù)框都表示為日期類型x軸上的矩形標(biāo)記,從x開始到x結(jié)束。

16、bar_polar:極坐標(biāo)條形圖 在極坐標(biāo)條形圖中,每一行都data_frame表示為極坐標(biāo)中的楔形標(biāo)記;

17、violin:小提琴圖 在小提琴圖中,將data_frame每一行分組成一個(gè)曲線標(biāo)記,以便可視化它們的分布;

18、box:箱形圖 在箱形圖中,data_frame的每一行被組合在一起成為盒須標(biāo)記,以顯示它們的分布;

19、strip:長條圖 在長條圖中,每一行data_frame表示為類別中的抖動標(biāo)記;

20、histogram:直方圖  在直方圖中,每一行data_frame被組合在一起成為矩形標(biāo)記,以可視化該值的聚合函數(shù)histfunc(例如,計(jì)數(shù)或總和)的1D分布y(或者x,如果orientation是'h'時(shí));

21、pie:餅圖 在餅圖中,數(shù)據(jù)幀的每一行表示為餅圖的扇區(qū)。

22、treemap:樹狀圖 樹狀圖將層次數(shù)據(jù)表示為嵌套的矩形扇區(qū)。

23、sunburst:圓環(huán)圖 圓環(huán)圖將層次數(shù)據(jù)表示為在同心環(huán)的多個(gè)級別上布置的扇區(qū)。

24、funnel:漏斗圖 在漏斗圖中,數(shù)據(jù)框的每一行表示為漏斗的矩形扇區(qū)。

25、funnel_area:漏斗區(qū)域圖 在漏斗區(qū)域圖中,每行數(shù)據(jù)框表示為漏斗的梯形扇區(qū)。

26、scatter_matrix:矩陣散點(diǎn)圖  在散點(diǎn)圖矩陣(或SPLOM)中,每行data_frame由多個(gè)符號標(biāo)記表示,在2D散點(diǎn)圖的網(wǎng)格的每個(gè)單元格中有一個(gè),其將每對dimensions彼此相對繪制;

27、parallel_coordinates:平行坐標(biāo)圖  在平行坐標(biāo)圖中,每行data_frame由折線標(biāo)記表示,該折線標(biāo)記穿過一組平行軸,每個(gè)平行軸對應(yīng)一個(gè)平行軸 dimensions;

28、parallel_categories:并行類別圖  在并行類別(或平行集)圖中,每行data_frame與其他共享相同值的行組合,dimensions然后通過一組平行軸繪制為折線標(biāo)記,每個(gè)平行軸對應(yīng)一個(gè)dimensions;

29、choropleth:等高(值)區(qū)域地圖 在等值區(qū)域圖中,每行data_frame由地圖上的彩色區(qū)域標(biāo)記表示;

30、choropleth_mapbox:在Mapbox choropleth地圖中,每一行的數(shù)據(jù)由Mapbox地圖上的一個(gè)彩色區(qū)域表示。

31、density_contour:密度等值線圖(雙變量分布)  在密度等值線圖中,行data_frame被組合在一起,成為輪廓標(biāo)記,以可視化該值的聚合函數(shù)histfunc(例如:計(jì)數(shù)或總和)的2D分布z;

32、density_heatmap:密度熱力圖(雙變量分布)  在密度熱圖中,行data_frame被組合在一起,成為彩色矩形瓦片,以可視化該值的聚合函數(shù)histfunc(例如:計(jì)數(shù)或總和)的2D分布 z;

33、density_mapbox:Mapbox密度圖 在Mapbox密度圖中,每一行數(shù)據(jù)幀都會影響地圖上相應(yīng)點(diǎn)周圍區(qū)域的顏色強(qiáng)度

plotly.graph_objects為底層組件,提供了figures, traces and layout等底層接口,以便進(jìn)行靈活開發(fā)。

Figure 容器

Layout 布局

Simple Traces 簡單軌跡線

Distribution Traces 分布軌跡線

Finance Traces 財(cái)務(wù)軌跡線

Map Traces 地圖軌跡線

Specialized Traces 特殊軌跡線

dash_html_components庫包含每個(gè)HTML標(biāo)簽的組件類以及所有HTML參數(shù)的關(guān)鍵字參數(shù)。

dash_html_components和HTML屬性有幾點(diǎn)重要的不同:

1. 在HTML中,style屬性是以分號分隔的字符串。在Dash中,你可以使用一個(gè)字典。

2. style字典里的鍵值是cameCase(駝峰樣式)的,不是 text-align, 而是 textAlign。

3. HTML類屬性是Dash中的className。

4. HTML標(biāo)簽的子項(xiàng)是通過children關(guān)鍵字參數(shù)指定的。

dash_core_components庫包含一組更高級別的組件,如下拉列表,圖形等。

dash_html_components庫為所有HTML標(biāo)簽提供類,同時(shí)關(guān)鍵字參數(shù)描述HTML屬性,例如style,className和ID。

dash_core_components庫生成高級別的組件,如控件和圖形。

到此,關(guān)于“如何理解Python可視化Dash工具”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI