1. 程式人生 > 實用技巧 >Python新一代資料視覺化神器:Plotly動畫展示

Python新一代資料視覺化神器:Plotly動畫展示

前言

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理。

以下文章來自於Python技術,作者:派森醬

視覺化神器Plotly_Express詳解

Plotly是新一代的資料視覺化神器,TopQ擴充套件開源團隊,雖然plotly功能強大,卻一直沒有得到廣泛應用,大部分py開發人員,還在使用陳舊的matplotlib,其中最重要的原因,就是plotly的設定過於繁瑣。折射率,plotly推出了其簡化介面:Plotly Express,簡稱:px。

Plotly Express是對Plotly.py的高階封裝,內建的實用,現代的繪圖模板,使用者只需呼叫簡單的API函式,即可快速生成漂亮的互動式圖表。

Plotly Express內建的圖表組合,涵蓋了90%常用的繪圖需要,Python畫圖,首推Plotly Express。

封裝圖表說明

scatter:散點圖在散點圖中,每行data_frame由2D空間中的符號標記表示;

scatter_3d:三維散點圖在3D散點圖中,每行data_frame由3D空間中的符號標記表示;

scatter_polar:極座標散點圖在極座標散點圖中,每行data_frame由極座標中的符號標記表示;

scatter_ternary:三元散點圖在三元散點圖中,每行data_frame由三元座標中的符號標記表示;

scatter_mapbox:地圖散點圖在Mapbox散點圖中,每行data_frame都由Mapbox地圖上的符號標記表示;

scatter_geo:地理座標散點圖在地理散點圖中,每行data_frame都由地圖上的符號標記表示;

scatter_matrix:矩陣散點圖在散點圖矩陣(或SPLOM)中,每行data_frame由多個符號標記表示,在2D散點圖的網格的每個單元格中有一個,其將每對尺寸彼此相對相對;

density_contour:密度等值線圖(雙變數分佈)在密度等值線圖中,行data_frame被組合在一起,成為輪廓標記,以視覺化該值的聚合函式histfunc(例如:計數或總和)的2D分佈z ;

density_heatmap:密度熱力圖(雙變數分佈)在密度熱圖中,行data_frame被組合在一起,成為彩色矩形細分,以視覺化該值的聚合函式histfunc(例如:計數或總和)的2D分佈z;

line:線條圖在2D線圖中,每行data_frame表示為2D空間中折線標記的頂端;

line_polar:極座標線條圖在極線圖中,每行data_frame表示為極座標中折線標記的頂端;

line_ternary:三元線條圖在三元線圖中,每行data_frame表示為三元座標中折線標記的尖端;

line_mapbox:地圖線條圖在Mapbox線圖中,每一行data_frame表示為Mapbox地圖上折線標記的頂端;

line_geo:地理座標線條圖在地理線圖中,每一行data_frame表示為地圖上折線標記的頂端;

parallel_coordinates:平行座標圖在平行座標圖中,每行data_frame由折線標記表示,該行線標記分隔成平行軸,每個平行軸對應一個平行軸的尺寸;

parallel_categories:並行類別圖在並行類別(或平行集)圖中,每行data_frame與其他共享相同值的行組合,尺寸然後通過平行軸對齊為折線標記,每個平行軸對應一個尺寸;

區域:堆積區域圖在堆積區域圖中,每行data_frame表示為2D空間中折線標記的尖端。連續折線之間的區域被填充;

bar:條形圖在條形圖中,每行data_frame表示為矩形標記;

bar_polar:極座標條形圖在極座標條形圖中,每一行都data_frame表示為極座標中的楔形標記;

小提琴圖:小提琴圖在小提琴圖中,將data_frame每一行分組成一個曲線標記,剎車視覺化其的分佈;

box:箱形圖在箱形圖中,data_frame的每一行被組合在一起成為盒須標記,以顯示它們的分佈;

strip:長條圖在長條圖中,每行data_frame表示為類別中的主軸標記; l

直方圖:直方圖在直方圖中,每行data_frame被組合在一起成為矩形標記,以視覺化該值的聚合函式histfunc(例如,計數或總和)的1D分佈y(或者x,如果orientation是'h'時);

choropleth:等高(值)區域地圖在等值區域圖中,每行data_frame由地圖上的彩色區域標記表示;

呈現動畫散點圖

繪畫散點圖的圖表是:scatter,詳細程式碼如下:

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])

顯示結果為:

動畫條形圖

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()

顯示結果如下: