sns.distplot()用法


sns.distplot()集合了matplotlib的hist()於sns.kdeplot()功能,增了rugplot分布觀測顯示與理由scipy庫fit擬合參數分布的新穎用途

#參數如下
sns.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)

直方圖:先分箱,然后計算每個分箱頻數的數據分布,

和條形圖的區別,條形圖有空隙,直方圖沒有,條形圖一般用於類別特征,直方圖一般用於數字特征(連續型)
多用於y值和數字(連續型)特征的分布畫圖

import matplotlib.pyplot as plt 
import numpy as np
import pandas as pd 
import seaborn as sns 
sns.set()  #切換到sns的默認運行配置

x=np.random.randn(100)
sns.distplot(x)

 

通過hist和kde參數調節是否顯示直方圖及核密度估計(默認hist,kde均為True)

fig,axes=plt.subplots(1,3)  #創建一個1行三列的圖片
sns.distplot(x,ax=axes[0])
sns.distplot(x,hist=False,ax=axes[1])  #不顯示直方圖
sns.distplot(x,kde=False,ax=axes[2])  #不顯示核密度

 

 

 bins:int或list,控制直方圖的划分

#bins
fig,axes=plt.subplots(1,2) 
sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20個區間
sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3為分割點,形成區間[0,1],[1,2],[2,3],區間外的值不計入。

 

rag:控制是否生成觀測數值的小細條

#rag
fig,axes=plt.subplots(1,2)
sns.distplot(x,rug=True,ax=axes[0]) #左圖
sns.distplot(x,ax=axes[1]) #右圖

 

 fit:控制擬合的參數分布圖形,能夠直觀地評估它與觀察數據的對應關系(黑色線條為確定的分布)

#fit
from scipy.stats import *
sns.distplot(x,hist=False,fit=norm) #擬合標准正態分布

 

 hist_kws, kde_kws, rug_kws, fit_kws參數接收字典類型,可以自行定義更多高級的樣式

#
sns.distplot(x,kde_kws={"label":"KDE"},vertical=True,color="y")

 

 norm_hist:若為True, 則直方圖高度顯示密度而非計數(含有kde圖像中默認為True)

#norm_hist
fig,axes=plt.subplots(1,2)
sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左圖
sns.distplot(x,kde=False,ax=axes[1]) #右圖

 

 全部代碼

 1 import matplotlib.pyplot as plt 
 2 import numpy as np
 3 import pandas as pd 
 4 import seaborn as sns 
 5 sns.set()  #切換到sns的默認運行配置
 6 
 7 x=np.random.randn(100)
 8 sns.distplot(x)
 9 
10 
11 fig,axes=plt.subplots(1,3)  #創建一個1行三列的圖片
12 sns.distplot(x,ax=axes[0])
13 sns.distplot(x,hist=False,ax=axes[1])  #不顯示直方圖
14 sns.distplot(x,kde=False,ax=axes[2])  #不顯示核密度
15 
16 
17 #bins
18 fig,axes=plt.subplots(1,2) 
19 sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20個區間
20 sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3為分割點,形成區間[0,1],[1,2],[2,3],區間外的值不計入。
21 
22 
23 #rag
24 fig,axes=plt.subplots(1,2)
25 sns.distplot(x,rug=True,ax=axes[0]) #左圖
26 sns.distplot(x,ax=axes[1]) #右圖
27 
28 
29 #fit
30 from scipy.stats import *
31 sns.distplot(x,hist=False,fit=norm) #擬合標准正態分布
32 
33 
34 #
35 sns.distplot(x,kde_kws={"label":"KDE"},vertical=True,color="y")
36 
37 #norm_hist
38 fig,axes=plt.subplots(1,2)
39 sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左圖
40 sns.distplot(x,kde=False,ax=axes[1]) #右圖

 


免責聲明!

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



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