更新時間:2023-03-06 來源:黑馬程序員 瀏覽量:
兩個變量的二元分布可視化也很有用。在 Seaborn中最簡單的方法是使用 jointplot()函數(shù),該函數(shù)可以創(chuàng)建一個多面板圖形,比如散點圖、二維直方圖、核密度估計等,以顯示兩個變量之間的雙變量關(guān)系及每個變量在單坐標軸上的單變量分布。
jointplot()函數(shù)的語法格式如下。
seaborn.jointplot(x, y, data=None, kind='scatter', stat_func=None, color=None, ratio=5, space=0.2, dropna=True)
上述函數(shù)中常用參數(shù)的含義如下:
(1) kind:表示繪制圖形的類型。
(2) stat_func:用于計算有關(guān)關(guān)系的統(tǒng)計量并標注圖。
(3) color:表示繪圖元素的顏色。
(4) size:用于設(shè)置圖的大小(正方形)。
(5) ratio:表示中心圖與側(cè)邊圖的比例。該參數(shù)的值越大,則中心圖的占比會越大。
(6) space:用于設(shè)置中心圖與側(cè)邊圖的間隔大小。
下面以散點圖、二維直方圖、核密度估計曲線為例,為大家介紹如何使用 Seaborn繪制這些圖形。
調(diào)用 seaborn.jointplot()函數(shù)繪制散點圖的示例如下。
import numpy as np import pandas as pd import結(jié)果如下圖所示。 seaborn as sns # 創(chuàng)建DataFrame對象 dataframe_obj = pd.DataFrame({"x": np.random.randn(500),"y": np.random.randn(500)}) # 繪制散布圖 sns.jointplot(x="x", y="y", data=dataframe_obj)
上述示例中,首先創(chuàng)建了一個 DataFrame對象 dataframe_obj作為散點圖的數(shù)據(jù),其中x軸和y軸的數(shù)據(jù)均為500個隨機數(shù),接著調(diào)用 jointplot0函數(shù)繪制一個散點圖,散點圖x軸的名稱為“x”,y軸的名稱為“y”。
運行結(jié)果如圖所示。
二維直方圖類似于“六邊形”圖,主要是因為它顯示了落在六角形區(qū)域內(nèi)的觀察值的計數(shù),適用于較大的數(shù)據(jù)集。當調(diào)用 jointplot()函數(shù)時,只
要傳入kind="hex",就可以繪制二維直方圖,具體示例代碼如下。
# 繪制二維直方圖 sns.jointplot(x="x", y="y", data=dataframe_obj, kind="hex")
運行結(jié)果如圖所示。
從六邊形顏色的深淺,可以觀察到數(shù)據(jù)密集的程度,另外,圖形的上方和右側(cè)仍然給出了直方圖。注意,在繪制二維直方圖時,最好使用白色
背景。
利用核密度估計同樣可以查看二元分布,其用等高線圖來表示。當調(diào)用jointplot()函數(shù)時只要傳入ind="kde",就可以繪制核密度估計圖形,具體示例代碼如下。
sns.jointplot(x="x", y="y", data=dataframe_obj, kind="kde")
上述示例中,繪制了核密度的等高線圖,另外,在圖形的上方和右側(cè)給出了核密度曲線圖。運行結(jié)果如圖所示。
通過觀等高線的顏色深淺,可以看出哪個范圍的數(shù)值分布的最多,哪個范圍的數(shù)值分布的最少。
要想在數(shù)據(jù)集中繪制多個成對的雙變量分布,則可以使用pairplot()函數(shù)實現(xiàn),該函數(shù)會創(chuàng)建一個坐標軸矩陣,并且顯示Datafram對象中每對變量的關(guān)系。另外,pairplot()函數(shù)也可以繪制每個變量在對角軸上的單變量分布。
接下來,通過sns.pairplot()函數(shù)繪制數(shù)據(jù)集變量間關(guān)系的圖形,示例代碼如下:
#加載seaborn中的數(shù)據(jù)集 dataset=sns.load_dataset("iris") dataset.head()
上述示例中,通過load_dataset0函數(shù)加載了seaborn中內(nèi)置的數(shù)據(jù)集,根據(jù)iris數(shù)據(jù)集繪制多個雙變量分布。
#繪制多個成對的雙變量分布 sns.pairplot(dataset)
結(jié)果如下圖所示。