首頁人工智能技術(shù)資訊正文

Seaborn中怎樣繪制雙變量分布圖?

更新時(shí)間:2023-03-06 來源:黑馬程序員 瀏覽量:

兩個(gè)變量的二元分布可視化也很有用。在 Seaborn中最簡單的方法是使用 jointplot()函數(shù),該函數(shù)可以創(chuàng)建一個(gè)多面板圖形,比如散點(diǎn)圖、二維直方圖、核密度估計(jì)等,以顯示兩個(gè)變量之間的雙變量關(guān)系及每個(gè)變量在單坐標(biāo)軸上的單變量分布。

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:用于計(jì)算有關(guān)關(guān)系的統(tǒng)計(jì)量并標(biāo)注圖。

(3) color:表示繪圖元素的顏色。

(4) size:用于設(shè)置圖的大小(正方形)。

(5) ratio:表示中心圖與側(cè)邊圖的比例。該參數(shù)的值越大,則中心圖的占比會(huì)越大。

(6) space:用于設(shè)置中心圖與側(cè)邊圖的間隔大小。

下面以散點(diǎn)圖、二維直方圖、核密度估計(jì)曲線為例,為大家介紹如何使用 Seaborn繪制這些圖形。

1.繪制散點(diǎn)圖

調(diào)用 seaborn.jointplot()函數(shù)繪制散點(diǎn)圖的示例如下。

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)建了一個(gè) DataFrame對象 dataframe_obj作為散點(diǎn)圖的數(shù)據(jù),其中x軸和y軸的數(shù)據(jù)均為500個(gè)隨機(jī)數(shù),接著調(diào)用 jointplot0函數(shù)繪制一個(gè)散點(diǎn)圖,散點(diǎn)圖x軸的名稱為“x”,y軸的名稱為“y”。

運(yùn)行結(jié)果如圖所示。

1678074910574_72.png

2.繪制二維直方圖

二維直方圖類似于“六邊形”圖,主要是因?yàn)樗@示了落在六角形區(qū)域內(nèi)的觀察值的計(jì)數(shù),適用于較大的數(shù)據(jù)集。當(dāng)調(diào)用 jointplot()函數(shù)時(shí),只

要傳入kind="hex",就可以繪制二維直方圖,具體示例代碼如下。

# 繪制二維直方圖 
sns.jointplot(x="x", y="y", data=dataframe_obj, kind="hex")

運(yùn)行結(jié)果如圖所示。

1678075126511_73.png

從六邊形顏色的深淺,可以觀察到數(shù)據(jù)密集的程度,另外,圖形的上方和右側(cè)仍然給出了直方圖。注意,在繪制二維直方圖時(shí),最好使用白色

背景。

3.繪制核密度估計(jì)圖形

利用核密度估計(jì)同樣可以查看二元分布,其用等高線圖來表示。當(dāng)調(diào)用jointplot()函數(shù)時(shí)只要傳入ind="kde",就可以繪制核密度估計(jì)圖形,具體示例代碼如下。

sns.jointplot(x="x", y="y", data=dataframe_obj, kind="kde")

上述示例中,繪制了核密度的等高線圖,另外,在圖形的上方和右側(cè)給出了核密度曲線圖。運(yùn)行結(jié)果如圖所示。

1678080896899_圖片1.png

通過觀等高線的顏色深淺,可以看出哪個(gè)范圍的數(shù)值分布的最多,哪個(gè)范圍的數(shù)值分布的最少。

4.繪制成對的雙變量分布

要想在數(shù)據(jù)集中繪制多個(gè)成對的雙變量分布,則可以使用pairplot()函數(shù)實(shí)現(xiàn),該函數(shù)會(huì)創(chuàng)建一個(gè)坐標(biāo)軸矩陣,并且顯示Datafram對象中每對變量的關(guān)系。另外,pairplot()函數(shù)也可以繪制每個(gè)變量在對角軸上的單變量分布。

接下來,通過sns.pairplot()函數(shù)繪制數(shù)據(jù)集變量間關(guān)系的圖形,示例代碼如下:

#加載seaborn中的數(shù)據(jù)集
dataset=sns.load_dataset("iris")

dataset.head()

1678081126812_圖片2.png

上述示例中,通過load_dataset0函數(shù)加載了seaborn中內(nèi)置的數(shù)據(jù)集,根據(jù)iris數(shù)據(jù)集繪制多個(gè)雙變量分布。

#繪制多個(gè)成對的雙變量分布
sns.pairplot(dataset)

結(jié)果如下圖所示。

1678081254524_圖片3.png

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!