- Seaborn 教程
- Seaborn - 首頁
- Seaborn - 簡介
- Seaborn - 環境設定
- 匯入資料集和庫
- Seaborn - 圖形美觀
- Seaborn - 調色盤
- Seaborn - 直方圖
- Seaborn - 核密度估計
- 視覺化成對關係
- Seaborn - 繪製分類資料
- 觀測值的分佈
- Seaborn - 統計估計
- Seaborn - 繪製寬格式資料
- 多面板分類圖
- Seaborn - 線性關係
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函式參考
- Seaborn - 函式參考
- Seaborn 有用資源
- Seaborn - 快速指南
- Seaborn - 有用資源
- Seaborn - 討論
Seaborn.jointplot() 方法
Seaborn.jointplot() 方法用於繪製資料集中的成對關係的子圖網格。此函式為 JointGrid 類提供了一個方便的介面,其中包含許多預製的繪圖型別。如果您需要更大的靈活性,則應直接使用 JointGrid,因為此包裝器旨在相對輕量級。
顧名思義,聯合圖由三個單獨的圖組成 - 一個雙變數圖,顯示因變數行為與自變數行為的差異,另一個圖位於雙變數圖上方以觀察自變數的分佈,另一個圖位於右側邊距垂直顯示因變數的分佈。
語法
以下是 seaborn.jointplot() 方法的語法:
seaborn.jointplot(*, x=None, y=None, data=None, kind='scatter', color=None, height=6, ratio=5, space=0.2, dropna=False, xlim=None, ylim=None, marginal_ticks=False, joint_kws=None, marginal_kws=None, hue=None, palette=None, hue_order=None, hue_norm=None, **kwargs)
引數
seaborn.jointplot() 方法的一些引數如下。
| 序號 | 名稱和描述 |
|---|---|
| 1 | 資料 接受資料框,其中每一列是一個變數,每一行是一個觀測值。 |
| 2 | 色調 指定將在某些網格面上顯示的資料部分的變數。要調整此變數的級別順序,請參閱 var order 引數。 |
| 3 | 種類 從 {‘scatter’, ‘kde’, ‘hist’, ‘reg’} 中獲取值,並確定要製作的繪圖型別。 |
| 4 | 比率 接受數值,並確定聯合軸高度與邊際軸高度的比率。 |
| 5 | 高度 接受標量值,並確定面的高度。 |
| 6 | 顏色 接受 matplotlib 顏色作為輸入,並確定未使用色調對映時的單一顏色規範。 |
| 7 | 邊際刻度 接受布林值,如果為 False,則抑制邊際圖中計數/密度軸上的刻度。 |
| 8 | 色調順序 接受列表作為輸入,並由此順序確定分面變數的級別順序。 |
返回值
此方法返回 JointGrid 物件,該物件管理多個子圖,這些子圖對應於聯合軸和邊際軸,用於繪製雙變數關係或分佈。
載入 seaborn 庫
在繼續開發繪圖之前,讓我們載入 seaborn 庫和資料集。要載入或匯入 seaborn 庫,可以使用以下程式碼行。
Import seaborn as sns
載入資料集
在本文中,我們將使用 seaborn 庫中內建的 Tips 資料集。以下命令用於載入資料集。
tips=sns.load_dataset("tips")
以下提到的命令用於檢視資料集中前 5 行。這使我們能夠了解可以使用哪些變數來繪製圖形。
tips.head()
以下是上述程式碼段的輸出。
index,total_bill,tip,sex,smoker,day,time,size 0,16.99,1.01,Female,No,Sun,Dinner,2 1,10.34,1.66,Male,No,Sun,Dinner,3 2,21.01,3.5,Male,No,Sun,Dinner,3 3,23.68,3.31,Male,No,Sun,Dinner,2 4,24.59,3.61,Female,No,Sun,Dinner,4
現在我們已經載入了資料,我們將繼續繪製資料。
示例 1
在此示例中,我們將使用 tips 資料集並透過將此資料集中的資料傳遞給 jointplot 來繪製聯合圖。對於 x、y、hue 列,我們將分別傳遞資料集的 total_bill、tip 和 sex 列。因此獲得的圖如下所示。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(data=tips, x="total_bill", y="tip",hue="sex")
plt.show()
輸出
獲得的圖的輸出如下:
示例 2
在此示例中,我們將傳遞 kind 引數並生成一個本質上是核密度估計的聯合圖。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(data=tips, x="total_bill", y="tip",hue="sex",kind="kde")
plt.show()
輸出
獲得的圖如下所示:
示例 3
在此示例中,我們將使用 marginal_kws 引數,這是一個額外的關鍵字引數,它確定在面的邊距上顯示的繪圖型別。在下面的示例中,我們傳遞了 bins,這意味著將在邊距上繪製指定數量 bin 的直方圖,並且由於 fill 引數傳遞為 false,因此繪製的圖未填充。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(
data=tips, x="total_bill", y="tip",
marker="*", s=150, marginal_kws=dict(bins=50, fill=False),
)
plt.show()
輸出
獲得的輸出如下:
示例 4
在此示例中,我們將繪製一個聯合圖,然後使用 plot_joint 方法在現有的聯合圖上新增不同型別的圖。下面,我們為 tips 資料集繪製了一個散點圖,然後在散點圖上以紅色繪製了一個核密度估計 (KDE) 圖,如圖所示。這可以使用 plot_joint() 方法實現。
在此示例中,KDE 圖的顏色初始化為紅色,要呈現的 KDE 水平初始化為 6。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
g = sns.jointplot(data=tips, x="total_bill", y="tip")
g.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
plt.show()
輸出
獲得的圖如下所示: