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


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

如下代碼所示是繪制標准正態分布的分布圖

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()。

如下代碼是繪出二維正態分布的散點圖

 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的矩陣

  利用DataFrame函數將ndarray變成DataFrame結構,然后利用jointplot()畫出散點圖。其中如果kind=“scatter”則是普通散點圖,這里為了避免樣本太多,普通的散點圖可能連成一片看不出分布差異,

用kind=“hex"來畫,運行結果如下

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

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

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()

運行結果如下

 


免責聲明!

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



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