Python 可視化 seaborn學習筆記

Python數據可視化

1、seaborn使用

詳細介紹可以看seaborn官方API和example galler。

  1. 一個較通用的繪圖函數 factorplot
    sns.factorplot(x=,y=,hue=分類標籤1,col=分類畫圖標籤2,data=數據,kind=繪圖類型)
    其中,繪圖類型,當爲"swarm"時候,繪製出的就是類似樹圖,當爲"box"時候,爲盒圖,當爲"bar"時候爲條形圖

Parameters:
x,y,hue 數據集變量 變量名
date 數據集 數據集名
row,col 更多分類變量進行平鋪顯示 變量名
col_wrap 每行的最高平鋪數 整數
estimator 在每個分類中進行矢量到標量的映射 矢量
ci 置信區間 浮點數或None
n_boot 計算置信區間時使用的引導迭代次數 整數
units 採樣單元的標識符,用於執行多級引導和重複測量設計 數據變量或向量數據
order, hue_order 對應排序列表 字符串列表
row_order, col_order 對應排序列表 字符串列表
kind : 可選:point 默認, bar 柱形圖, count 頻次, box 箱體, violin 提琴, strip 散點,swarm 分散點 size 每個面的高度(英寸) 標量 aspect 縱橫比 標量 orient 方向 “v”/“h” color 顏色 matplotlib顏色 palette 調色板 seaborn顏色色板或字典 legend hue的信息面板 True/False legend_out 是否擴展圖形,並將信息框繪製在中心右邊 True/False share{x,y} 共享軸線 True/False

  1. 直方圖,散點圖
    1)sns.displot(data,kde=False,fit=stats.gamma)
    (distplot可以繪製很多分佈,函數內部涵蓋了大量的分佈函數,可以用來近似擬合數據.這對於熟悉統計的人來說十分有用.例如gamma函數等等.)
    2)sns.jointplot(x=“x”,y=“y”,data=‘數據’)既可以畫散點圖,又可以在畫出散點圖的同時繪製出各個單變量的直方圖。
    此處,若增加kind="hex"時,可以在散點圖的維度通過顏色深淺來判斷哪裏散點數據點比較集中;
    3)sns.pairplot(iris)可以繪製數據當中兩兩之間的關係,對角線上的數據屬於單變量特徵,因此均爲直方圖,其餘爲兩變量之間的特徵,爲散點圖;
    4)sns.barplot(x=,y=,hue=類別列名,data=數據)

  2. 迴歸圖分析
    sns有內置鳶尾花數據集,或者tips數據集,測試畫圖工具時候,可以直接用測試數據集,引入方式爲:

iris = sns.load_dataset("iris")
tips=sns.load_dataset("tips")

1)同上,sns.pairplot(iris)可以分析各個兩變量之間的關係;
2)迴歸繪圖可以使用regplot(),lmplot()
eg:

sns.regplot(x="x",y="y",data="數據")

4.離散點繪圖分析
例如,有星期幾分佈的情況,不是連續數值,使用離散點方式繪圖分析,可以使用
1)可以用直方圖,散點圖分析離散數據,同上;
2)sns.pointplot(x=,y=,hue=,data=數據),點圖,可以觀察對應hue每個分類下的變化趨勢;
可以通過palette,linestyles和markers來改變繪圖的顏色,線型以及點標記
3)sns.stripplot(x=,y=,data=數據);
4)sns.swarmplot(x=,y=,data=數據),可以增加hue參數,hue等於某標籤列列名,則圖中可以按標籤顏色顯示;

  1. 奇異值,離羣點分析
    1)盒圖
    即通過分位數據,判斷距離集中的數據集歐式距離較遠的點,判斷爲奇異值;
    IQR是統計學概念四分位距,第一/四分位之間的距離,N=1.5IQR如果一個值>Q3+N或<Q1-N,則爲離羣點
    sns.boxplot(x=,y=,hue=類別列列名,data=數據),增加hue參數,即按照類別分別分箱,一般使用四分位點判斷離羣點
    2)小提琴圖,類似上面的盒圖
    sns.violinplot(x=,y=,hue=類別,data=數據,split=True)
    3)

  2. 當想展示數據集中,很多子集的時候,可以使用facetgrid

eg:
g=sns.FacetGrid(數據集,col=“sex”)
g.map(plt.scatter,“total_bill”,alpha=.7)
g.add_legend()
如上所示,sex列對應兩種分類,即male男性和female女性,即繪製出分別對應男性女性圖,total_bill即爲要展示的列,alpha爲透明度,也可以增加參數color,fit_reg(等於True表示展示迴歸線,False爲不展示,x_jitter爲調節顏色深淺)。
增加set_axis_labels(“橫座標label”,“縱座標label”),可以生成如下類型繪圖:
在這裏插入圖片描述
7. 對圖(不知道這麼叫對不對)
g=sns.PairGrid(數據集,vars=[“特徵1”,“特徵2”],hue=區分類別) vars用來區分要繪圖的特徵
g.map_diag(plt.hist)對角線圖格式
g.map_offdiag(plt.scatter) 非對角線繪圖格式

  1. 熱力圖
    heatmap = sns.heatmap(數據集)
    可以通過vmax,vmin來限制最大值與最小值,通過center值來限制中心值的大小。annot參數設置True可以將對應值繪製到熱力圖相應的節點上。如果顯示出來的數據出現比較亂的情況,則設定fmt=‘d’即可。

畫圖小技巧:

  • set_style( )是用來設置主題的,Seaborn有五個預設好的主題: darkgrid , whitegrid , dark , white ,和 ticks 默認: darkgrid;使用方法: import seaborn as sns sns.set_style("whitegrid")
    set( )通過設置參數可以用來設置背景,調色板等。
sns.set(style="white", palette="muted", color_codes=True)

可以通過sns.despine()去掉繪圖中的某個座標軸

  • 選用hls中系列顏色,sns.boxplot(data=數據 ,palette = sns.color_palette("hls",8)),同理如果要使用漸變顏色,可以color_palette中寫入某一顏色名,默認由淺到深,如果反過來就_r;hls是較常用的調色板,如果想要一對一對的的顏色,可以選用Paired調色板;也可以選用xkcd_rgb來設定繪圖中的顏色;

以上。歡迎糾錯,歡迎學習交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章