用seborn的函數distplot(), jointplot(), pairplt()對數據的單變量分析繪圖

1.用seaborn的distplot()函數繪製直方圖。參數kde = True時會把分佈曲線也畫出來。dom

以下代碼所示是繪製標準正態分佈的分佈圖函數

1 import seaborn as sns 2 import numpy as np 3 import matplotlib as mpl 4 import matplotlib.pyplot as plt 5 
6 
7 x = np.random.normal(size=1000) 8 sns.distplot(x) 9 plt.show()

2.對於兩組變量關係,能夠用散點圖畫出他們的分佈。函數是jointplot()。spa

以下代碼是繪出二維正態分佈的散點圖code

 1 import seaborn as sns  2 import numpy as np  3 import pandas as pd  4 import matplotlib as mpl  5 import matplotlib.pyplot as plt  6 
 7 
 8 data = np.random.multivariate_normal(mean=[0, 0], cov=[[1, 0], [0, 1]], size=1000) #1000組標準二維正態分佈  9 df = pd.DataFrame(data=data, columns=["x", "y"]) 10 sns.jointplot(x="x", y="y", kind="hex", data=df) 11 plt.show()

  data是一個長度爲1000的ndarray類型,每一個元素又是一個二維向量,分別是二維正態分佈的兩個隨機變量的樣本值。因此能夠當成是1000*2的矩陣orm

  利用DataFrame函數將ndarray變成DataFrame結構,而後利用jointplot()畫出散點圖。其中若是kind=「scatter」則是普通散點圖,這裏爲了不樣本太多,普通的散點圖可能連成一片看不出分佈差別,blog

用kind=「hex"來畫,運行結果以下pandas

 3.最強大的函數應該是pairplot函數,它能對DataFram的屬性兩兩配對繪製散點圖,而且對某一屬性繪製直方圖class

以下代碼所示,iris是seaborn內置數據集import

1 import seaborn as sns 2 import numpy as np 3 import pandas as pd 4 import matplotlib as mpl 5 import matplotlib.pyplot as plt 6 
7 iris = sns.load_dataset("iris") #seaborn內置數據集,DaraFram類型 8 sns.pairplot(iris, kind="hex") 9 plt.show()

運行結果以下變量

相關文章
相關標籤/搜索