天天看點

Python資料可視化——分布資料可視化

Python資料可視化——分布資料可視化

這篇文章是Python可視化seaborn系列的第二篇文章,本文将詳解seaborn如何探索資料的分布。

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

單變量

直方圖 displot

seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

bins → 箱數

hist、ked、rug → bool,是否顯示箱/密度曲線/資料分布

norm_hist → 直方圖是否按照密度來顯示,如果為False,顯示計數

{hist,kde,rug,fit} _kws:字典,對應部分的各種參數。

vertical → 是否水準顯示

fit → 可結合scipy庫在圖像上做拟合

label → 圖例

axlabel → x軸标注

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

核密度估計圖 kdeplot

核密度估計的步驟:

每一個觀測附近用一個正态分布曲線近似

疊加所有觀測的正态分布曲線

歸一化

seaborn.kdeplot(data,data2 = None,shade = False,vertical = False,kernel ='gau',bw ='scott',gridsize = 100,cut = 3,clip = None,legend = True,cumulative = False,shade_lowest = True,cbar = False,cbar_ax =無,cbar_kws =無,ax =無, kwargs )

shade: 如果為True,則用顔色填充KDE曲線下方的區域(或者在資料為雙變量時用顔色填充的輪廓)

kernel: {‘gau’|‘cos’|‘biw’|‘epa’|‘tri’|‘triw’} 用于拟合的核,雙變量值能用高斯核(gau)

bw: {'scott'|'silverman'|标量|一對标量} 确定核的大小,近似了解為拟合程度,bw越大,曲線越平緩。

gridsize:int, 網格中的離散點數

cumulative :是否繪制累積分布

cbar:參數若為True,則會添加一個顔色條(顔色條在雙變量kde圖像中才有)

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

核密度分布圖不但能繪制單個變量的,也能繪制雙變量!!!

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

雙變量

jointplot

seaborn.jointplot(x,y,data = None,kind ='scatter',color = None,size = 6,ratio = 5,space = 0.2,dropna = True,xlim = None,ylim = None,joint_kws = None,marginal_kws =None,annot_kws =None, kwargs )

該函數是JoinGrid類的一個輕量級界面,如果想更加靈活的繪制,可以使用JoinGrid函數

kind: 設定類型:“scatter”、“reg”、“resid”、“kde”、“hex”

size: int, 圖像大小(圖像自動調整為正方形)

radio: int, 主圖與邊緣圖的高度比

space: # 設定主圖和邊緣圖的間距

{x,y} lim :在繪圖之前設定軸限制

{joint,marginal,annot} _kws:dicts 繪圖元件的其他關鍵字參數

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

seaborn會直接給出變量的皮爾遜相關系數和P值

pearson相關系數計算:

Python資料可視化——分布資料可視化

p:樣本間的差異由抽樣誤差所緻的機率小于p.

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

JointGrid

前面講過jointplot其實是JoinGrid的一個封裝,要想有更靈活的設定,可以使用JoinGrid類

__init__(x,y,data = None,size = 6,ratio = 5,space = 0.2,dropna = True,xlim = None,ylim = None)

方法:

plot(joint_func,marginal_func ,annot_func)→ 繪制完整的圖形

plot_joint(func,** kwargs)→ 繪制雙變量圖形

plot_marginals(func,** kwargs)→ 繪制邊緣單變量圖形

savefig( args,* kwargs)→ 儲存

set_axis_labels([xlabel,ylabel])→ 在雙變量軸上設定軸标簽。

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

探索兩兩變量之間的關系

通常我們的資料并不是隻有一個或者兩個變量,那麼對于多個變量,我們常需要探索兩兩變量之間的分布及關系這是我們就需要使用pairplot函數 或者是PairGrid類

pairplot

seaborn.pairplot(data,hue = None,hue_order = None,palette = None,vars = None,x_vars = None,y_vars = None,kind ='scatter',diag_kind ='auto',markers = None,s = 2.5,aspect = 1,dropna = True,plot_kws = None,diag_kws = None,grid_kws = None)

hue: string(變量名) : 顔色将按照指定的變量分類

hue_order : list 設定調色闆色調變量級别

palette : 調色闆

vars : list 變量名稱清單,否則使用所有數值型變量的列

markers: 點樣式

Python資料可視化——分布資料可視化

sepal_length sepal_width petal_length petal_width species

5.1 3.5 1.4 0.2 setosa

4.9 3.0 1.4 0.2 setosa

4.7 3.2 1.3 0.2 setosa

4.6 3.1 1.5 0.2 setosa

5.0 3.6 1.4 0.2 setosa

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

PairGrid

相當于jointplot 和 JointGrid的關系,PairGrid 對矩陣散點圖有着更為靈活的控制

__init__(data,hue = None,hue_order = None,palette = None,hue_kws = None,vars = None,x_vars = None,y_vars = None,diag_sharey = True,size = 2.5,aspect = 1,despine = True,dropna = True)

方法:

add_legend([legend_data,title,label_order])繪制一個圖例,可能将其放在軸外并調整圖形大小。

map_diag(func,** kwargs):在每個對角線子圖上繪制具有單變量函數的圖。

map_lower(func,** kwargs):在下對角線子圖上繪制具有雙變量函數的圖。

map_upper(func,** kwargs):在上對角線子圖上繪制具有雙變量函數的圖

map_offdiag(func,** kwargs):在非對角線子圖上繪制具有雙變量函數的圖。

set(** kwargs):在每個子圖集Axes上設定屬性。

Python資料可視化——分布資料可視化
Python資料可視化——分布資料可視化

看再多次,都不如自己親自動手寫一次,隻有在實際應用中不斷練習,思考,調整。才能了解掌握資料可視化的技能。

轉載于:https://www.cnblogs.com/l520/p/10275882.html