在做數(shù)據(jù)分析之前,有時需要對數(shù)據(jù)進(jìn)行可視化编曼,從宏觀上對數(shù)據(jù)的分布有一個認(rèn)識,進(jìn)而更好的理解數(shù)據(jù)在實際項目中的意義。
Seaborn其實是在matplotlib的基礎(chǔ)上進(jìn)行了更高級的API封裝秕硝,從而使得作圖更加容易,在大多數(shù)情況下使用seaborn就能做出很具有吸引力的圖洲尊,而使用matplotlib能制作具有更多特色的圖远豺。應(yīng)該把Seaborn視為matplotlib的補(bǔ)充,而不是替代物坞嘀。
一躯护、目錄:
分布圖
- displot (直方圖)
- kedplot(概率密度圖)
- jointplot(聯(lián)合密度圖)
- pairplot(多變量圖)
分類圖
- boxplot(箱線圖)
- violinplot(提琴圖)
回歸圖
- lmplot (回歸圖)
矩陣圖
- heatmap (熱力圖)
seaborn可以畫的圖形很多,不僅僅限于上面的幾種圖丽涩,詳見官方文檔:http://seaborn.pydata.org/index.html
總結(jié)的圖形來源于官方文檔棺滞、自己的相關(guān)數(shù)據(jù)可視化項目中
二、分布圖:
2.1:displot(直方圖)
直方圖矢渊,是一種表示數(shù)據(jù)變化情況的圖形继准。可以比較直觀的看出數(shù)據(jù)的特性分布矮男,對數(shù)據(jù)的分布狀況有個宏觀認(rèn)識锰瘸。具體參數(shù)如下:
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:int或list,控制直方圖的有多少個箱體
- hist:是否顯示方塊
- kde:是否顯示密度估計曲線
- rug:控制是否生成觀測數(shù)值的小細(xì)條(邊際毛毯)
- fit:控制擬合的參數(shù)分布圖形昂灵,能夠直觀的評估圖形與觀察數(shù)據(jù)的對應(yīng)關(guān)系(黑色線條為確定的分布)
- -{hist, kde, rug, fit}_kws :參數(shù)接收字典類型避凝,可以自行定義更多高級的樣式;
- norm_hist:若為True,則直方圖的高度顯示為密度而非計數(shù)(含有kde圖像中默認(rèn)為True)
- vertical:放置的方向眨补,如果為真管削,則觀測值位于y-軸上(默認(rèn)為False,x軸上)
-
axlabel:string、False撑螺、None含思,設(shè)置標(biāo)簽。
2.2甘晤、kdeplot(概率密度圖)
概率密度圖可以比較直觀的看出數(shù)據(jù)樣本本身的分布特征(作用效果與直方圖中的kde效果類似)含潘,具體參數(shù)如下:
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=None, cbar_kws=None, ax=None, **kwargs)
- data、data2:表示可以輸入雙變量线婚,繪制雙變量核密度圖遏弱;
- shade:是否填充陰影,默認(rèn)不填充塞弊;
- vertical:放置的方向漱逸,如果為真泪姨,則觀測值位于y軸上(默認(rèn)False,x軸上)饰抒;
- kernel:{‘gau’ | ‘cos’ | ‘biw’ | ‘epa’ | ‘tri’ | ‘triw’ }肮砾。默認(rèn)高斯核(‘gau’)二元KDE只能使用高斯核。至于什么是核函數(shù)袋坑,這個學(xué)問就大了仗处,建議多看看論文;
- bw:{‘scott’ | ‘silverman’ | scalar | pair of scalars }枣宫。四類核密度帶方法疆柔,默認(rèn)scott (斯考特帶寬法),建議下來了解一下這四種方法的區(qū)別镶柱;
- gridsize:這個參數(shù)指的是每個格網(wǎng)里面,應(yīng)該包含多少個點模叙,越大歇拆,表示格網(wǎng)里面的點越多(覺得電腦OK的可以試試,有驚喜)范咨,越小表示格網(wǎng)里面的點越少故觅;
- cut:參數(shù)表示,繪制的時候渠啊,切除帶寬往數(shù)軸極限數(shù)值的多少输吏,這個參數(shù)可以配合bw參數(shù)使用;
- cumulative:是否繪制累積分布替蛉;
- shade_lowest:是否有最低值渲染贯溅,這個參數(shù)只有在二維密度圖上才有效;
- clip:表示查看部分結(jié)果躲查,是一個區(qū)間它浅;
- cbar:參數(shù)若為True,則會添加一個顏色棒(顏色幫在二元kde圖像中才有)镣煮;
雙變量密度圖:
2.3姐霍、jointplot(聯(lián)合密度圖)
聯(lián)合分布全稱是聯(lián)合概率分布,是兩個及以上隨機(jī)變量組成的隨機(jī)變量的概率分布典唇。即兩個變量之間的聯(lián)系與各個方向上的分布镊折。具體參數(shù)如下:
seaborn.jointplot(x, y, data=None, kind='scatter', stat_func=None, color=None,
height=6, ratio=5, space=0.2, dropna=True, xlim=None, ylim=None, joint_kws=None,
marginal_kws=None, annot_kws=None, **kwargs)
- x,y:為DataFrame中列名或者是兩組數(shù)據(jù)
- kind:{“scatter”|“reg”|“resid”|"kde"|"hex"}。表示聯(lián)合圖的類型介衔,默認(rèn)為散點圖恨胚。
- stat_func:用于計算統(tǒng)計量關(guān)系的函數(shù)(可以是自己定義的函數(shù))
- ratio:中心圖與側(cè)邊圖的比例,越大則中心圖的占比越大
- dropna:去除缺失值
- height:圖形的尺寸大醒卓А(正方形)
- space:中心圖與側(cè)邊圖的間隔大杏肱Α侣签;
- xlim,ylim:x,y的范圍
2.4、pairplot(變量關(guān)系組圖)
繪制給定數(shù)據(jù)集中急迂,默認(rèn)數(shù)據(jù)之間兩兩關(guān)系的圖影所。該函數(shù)將創(chuàng)建一個軸網(wǎng)絡(luò),這樣數(shù)據(jù)中的每個變量都講通過跨一行的y軸和跨單個列的x軸共享僚碎。而對角線中則為該列變量的單變量分布猴娩。具體參數(shù)如下:
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,
height=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None,
grid_kws=None, size=None)
- vars:data中的子集,否則為data中的全部數(shù)量型數(shù)據(jù)(定性性數(shù)據(jù)是不會分的)
- kind:{“scatter”勺阐,“reg”}卷中;兩兩關(guān)系的圖表類型,默認(rèn)為scatter
- diag_kind:{“auto”渊抽,“hist”蟆豫,“kde”};單變量圖(自己與自己比較)的繪圖懒闷,對角線子圖
- hue:分類十减,按照某一列的定性數(shù)據(jù)分類