Python可視化神器-Plotly動畫展示

文 |?潮汐
來源:Python 技術(shù)「ID: pythonall」

在之前的一篇文章Python可視化神器-Plotly展現(xiàn)了可視化神器-Plotly的基本使用,接下來繼續(xù)本著學(xué)習(xí)的姿態(tài)繼續(xù)探索可視化神器-Plotly的神奇之旅。本文介紹如何在Python中使用Plotly創(chuàng)建動畫。
可視化神器 Plotly_Express 詳解
Plotly 是新一代的數(shù)據(jù)可視化神器,TopQ量化開源團(tuán)隊,雖然plotly功能強(qiáng)大,卻一直沒有得到廣泛應(yīng)用,大部分py開發(fā)人員,還在使用陳舊的matplotlib,其中最重要的原因,就是plotly的設(shè)置過于繁瑣。為此,plotly推出了其簡化接口:Plotly Express,簡稱:px。
Plotly Express是對 Plotly.py 的高級封裝,內(nèi)置了大量實(shí)用、現(xiàn)代的繪圖模板,用戶只需調(diào)用簡單的API函數(shù),即可快速生成漂亮的互動圖表。
Plotly Express內(nèi)置的圖表組合,涵蓋了90%常用的繪圖需要,Python畫圖,首推Plotly Express。
封裝圖表說明
scatter:散點(diǎn)圖 在散點(diǎn)圖中,每行data_frame由2D空間中的符號標(biāo)記表示;
scatter_3d:三維散點(diǎn)圖 在3D散點(diǎn)圖中,每行data_frame由3D空間中的符號標(biāo)記表示;
scatter_polar:極坐標(biāo)散點(diǎn)圖 在極坐標(biāo)散點(diǎn)圖中,每行data_frame由極坐標(biāo)中的符號標(biāo)記表示;
scatter_ternary:三元散點(diǎn)圖 在三元散點(diǎn)圖中,每行data_frame由三元坐標(biāo)中的符號標(biāo)記表示;
scatter_mapbox:地圖散點(diǎn)圖 在Mapbox散點(diǎn)圖中,每一行data_frame都由Mapbox地圖上的符號標(biāo)記表示;
scatter_geo:地理坐標(biāo)散點(diǎn)圖 在地理散點(diǎn)圖中,每一行data_frame都由地圖上的符號標(biāo)記表示;
scatter_matrix:矩陣散點(diǎn)圖 在散點(diǎn)圖矩陣(或SPLOM)中,每行data_frame由多個符號標(biāo)記表示,在2D散點(diǎn)圖的網(wǎng)格的每個單元格中有一個,其將每對dimensions彼此相對繪制;
density_contour:密度等值線圖(雙變量分布) 在密度等值線圖中,行data_frame被組合在一起,成為輪廓標(biāo)記,以可視化該值的聚合函數(shù)histfunc(例如:計數(shù)或總和)的2D分布z;
density_heatmap:密度熱力圖(雙變量分布) 在密度熱圖中,行data_frame被組合在一起,成為彩色矩形瓦片,以可視化該值的聚合函數(shù)histfunc(例如:計數(shù)或總和)的2D分布 z;
line:線條圖 在2D線圖中,每行data_frame表示為2D空間中折線標(biāo)記的頂點(diǎn);
line_polar:極坐標(biāo)線條圖 在極線圖中,每行data_frame表示為極坐標(biāo)中折線標(biāo)記的頂點(diǎn);
line_ternary:三元線條圖 在三元線圖中,每行data_frame表示為三元坐標(biāo)中折線標(biāo)記的頂點(diǎn);
line_mapbox:地圖線條圖 在Mapbox線圖中,每一行data_frame表示為Mapbox地圖上折線標(biāo)記的頂點(diǎn);
line_geo:地理坐標(biāo)線條圖 在地理線圖中,每一行data_frame表示為地圖上折線標(biāo)記的頂點(diǎn);
parallel_coordinates:平行坐標(biāo)圖 在平行坐標(biāo)圖中,每行data_frame由折線標(biāo)記表示,該折線標(biāo)記穿過一組平行軸,每個平行軸對應(yīng)一個平行軸 dimensions;
parallel_categories:并行類別圖 在并行類別(或平行集)圖中,每行data_frame與其他共享相同值的行組合,dimensions然后通過一組平行軸繪制為折線標(biāo)記,每個平行軸對應(yīng)一個dimensions;
area:堆積區(qū)域圖 在堆積區(qū)域圖中,每行data_frame表示為2D空間中折線標(biāo)記的頂點(diǎn)。連續(xù)折線之間的區(qū)域被填充;
bar:條形圖 在條形圖中,每行data_frame表示為矩形標(biāo)記;
bar_polar:極坐標(biāo)條形圖 在極坐標(biāo)條形圖中,每一行都data_frame表示為極坐標(biāo)中的楔形標(biāo)記;
violin:小提琴圖 在小提琴圖中,將data_frame每一行分組成一個曲線標(biāo)記,以便可視化它們的分布;
box:箱形圖 在箱形圖中,data_frame的每一行被組合在一起成為盒須標(biāo)記,以顯示它們的分布;
strip:長條圖 在長條圖中,每一行data_frame表示為類別中的抖動標(biāo)記;l
histogram:直方圖 在直方圖中,每一行data_frame被組合在一起成為矩形標(biāo)記,以可視化該值的聚合函數(shù)histfunc(例如,計數(shù)或總和)的1D分布y(或者x,如果orientation是'h'時);
choropleth:等高(值)區(qū)域地圖 在等值區(qū)域圖中,每行data_frame由地圖上的彩色區(qū)域標(biāo)記表示;
繪制動畫散點(diǎn)圖
繪畫散點(diǎn)圖的圖表是:scatter,詳細(xì)代碼如下:
import?plotly.express?as?px
df?=?px.data.gapminder()
px.scatter(df,?x="gdpPercap",?y="lifeExp",?animation_frame="year",?animation_group="country",
???????????size="pop",?color="continent",?hover_name="country",
???????????log_x=True,?size_max=55,?range_x=[100,100000],?range_y=[25,90])
顯示結(jié)果為:

動畫條形圖
import?plotly.express?as?px
df?=?px.data.gapminder()
fig?=?px.bar(df,?x="continent",?y="pop",?color="continent",
??animation_frame="year",?animation_group="country",?range_y=[0,4000000000])
fig.show()
顯示結(jié)果如下:

總結(jié)
希望今天文章和實(shí)戰(zhàn)對大家有所幫助,在以后的成神路上越來越順利!
參考
https://www.jianshu.com/p/41735ecd3f75?utm_campaign=hugo https://plotly.com/python/animations/
PS:公號內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起?100 天計劃!
老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下,如果感覺文章內(nèi)容不錯的話,記得分享朋友圈讓更多的人知道!


【神秘禮包獲取方式】
