distplot與kdeplot詳解


單元分布 sns.distplot()

  • 直方圖(hist)+內核密度函數(kde)

在seaborn中最簡便查看單元分布的函數是distplot().該函數默認繪制直方圖並擬合內核密度估計。通過調整參數可以分別繪制直方圖,擬合內核密度圖,地毯圖等。

x = np.random.normal(size=100)
sns.distplot(x);
 
  • 直方圖

sns.distplot(x,kde=False) / plt.hist()

當繪制直方圖時,你需要調整的參數是bin的數目(組數)。displot()會默認給出一個它認為比較好的組數,但是嘗試不同的組數可能會揭示出數據不同的特征。
sns.displot(x,bins=20,kde=False,rug=True)

 

當繪制直方圖時,最重要的參數是 bin以及 vertical,以確定直方圖的組數和放置位置
sns.distplot(x, bins=20, kde=False, rug=True);

 

  • 核密度估計

sns.distplot(x,hist=False) / sns.kdeplot(x)

核密度估計圖使用的較少,但其是繪制出數據分布的有用工具,與直方圖類似,KDE圖以一個軸的高度為准,沿着另外的軸線編碼觀測密度。sns.displot(x,hist=False,rug=True)

繪制KDE圖比繪制直方圖要復雜得多,每個觀測值首先要以該值為中心的正(高斯)曲線代替。然后各個點在加起來,計算支持網格點中每個點的密度值,然后將得到的曲線歸一化,使其面積小於,即得到核密度估計圖

在seaborng中也有一個函數kdeplot(),使用這個函數,我們可以得到同樣的曲線,這個函數在distplot()中也被調用,但是他提供了更多更方便的借口,來進行可視化調整。
sns.kdeplot(x,shae=Ture)

參數 bw(binwidth)同直方圖的bin一樣,控制了估算與數據間的緊密程度。與我們之前提到的內核寬度一致,默認情況下,函數會直接猜一個數據,但嘗試更大或更小bw情況的,或許會更有幫助。
sns.kdeplot(x)
sns.kdeplot(x, bw=.2, label="bw: 0.2") sns.kdeplot(x, bw=2, label="bw: 2") 

使用cut參數,可以控制曲線繪制多遠的極限值。然而這僅僅只是影響曲線如何繪制,並不會影響曲線本身

sns.kedplot(x,shade=True,cut=0) sns.rugplot(x)
  • 擬合參數分布

sns.distplot(x,kde=False,fit=stats,gamma)

你也可以通過使用distplot()來擬合出一個數據集的參數分布,直觀上來評估其余觀測數據是否關系密切。

x = np.random.gamma(6, size=200) sns.distplot(x, kde=False, fit=stats.gamma); 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM