- Seaborn 教程
- Seaborn - 首頁
- Seaborn - 簡介
- Seaborn - 環境配置
- 匯入資料集和庫
- Seaborn - 圖表美學
- Seaborn - 調色盤
- Seaborn - 直方圖
- Seaborn - 核密度估計
- 視覺化成對關係
- Seaborn - 繪製分類資料
- 觀測值的分佈
- Seaborn - 統計估計
- Seaborn - 繪製寬格式資料
- 多面板分類圖
- Seaborn - 線性關係
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函式參考
- Seaborn - 函式參考
- Seaborn 有用資源
- Seaborn - 快速指南
- Seaborn - 有用資源
- Seaborn - 討論
Seaborn.swarmplot() 方法
Seaborn.swarmplot() 方法用於繪製非重疊散點圖,其中一個變數是分類變數。此函式類似於 seaborn.stripplot() 方法,但點的位置會進行調整,以避免僅在分類軸上重疊。
這提供了更好的值表示和分佈,但並不理想用於大量觀測值。圖表的性質看起來像蜂群,因此被稱為 swarmplot()。與 strip plot 類似,seaborn.swarmplot() 方法可以用來補充其他圖表,例如箱線圖或小提琴圖,或者單獨使用。它接受寬格式資料、長格式資料、陣列或向量列表作為輸入。
語法
以下是 seaborn.swarmplot() 方法的語法:
seaborn.swarmplot(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor='gray', linewidth=0, ax=None, **kwargs)
引數
下面解釋了該方法的一些引數。
| 序號 | 引數和描述 |
|---|---|
| 1 | x,y 這些引數接受變數名稱作為輸入,用於繪製長格式資料。 |
| 2 | data 這是用於繪製圖表的DataFrame。 |
| 3 | hue DataFrame中用於繪製圖表的變數名稱。 |
| 4 | linewidth 此引數接受浮點值,並確定構成圖表中元素的灰色線條的寬度。 |
| 5 | dodge 此引數接受布林值。如果使用 hue 巢狀,將 True 傳遞給此引數將分離不同 hue 層次的條帶。如果傳遞 False,則每個級別的點將彼此疊加繪製。 |
| 6 | orient 它接受“h”或“v”值,圖表的方向根據此值確定。 |
| 7 | color 接受 matplotlib 顏色作為輸入,這決定了所有元素的顏色。 |
| 8 | size 此引數確定繪製圖中標記的半徑。 |
載入 seaborn 庫
在繼續繪製圖表之前,讓我們載入 seaborn 庫和資料集。可以使用以下程式碼行載入或匯入 seaborn 庫。
Import seaborn as sns
載入資料集
在本文中,我們將使用 seaborn 庫中內建的泰坦尼克號資料集。可以使用以下命令載入資料集。
titanic=sns.load_dataset("titanic")
以下命令用於檢視資料集中前 5 行。這使我們能夠理解可以使用哪些變數來繪製圖表。
titanic.head()
以下是上述程式碼的輸出。
index,survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone 0,0,3,male,22.0,1,0,7.25,S,Third,man,true,NaN,Southampton,no,false 1,1,1,female,38.0,1,0,71.2833,C,First,woman,false,C,Cherbourg,yes,false 2,1,3,female,26.0,0,0,7.925,S,Third,woman,false,NaN,Southampton,yes,true
現在我們已經載入了資料集,我們將探討一些示例。
示例 1
在這個示例中,我們將瞭解如何透過將 x、y 和 data 引數傳遞給 seaborn.swarmplot() 方法來繪製簡單的 swarm 圖。我們使用泰坦尼克號資料集來了解此方法的工作原理,因此將泰坦尼克號資料集中的 who 和 age 列分別傳遞給 x、y 引數。可以使用以下程式碼行來實現。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age", data=titanic)
plt.show()
輸出
獲得的圖表附在下面。
示例 2
我們將瞭解 seaborn.swarmplot() 方法的 size 引數的用法。此引數接受浮點值作為輸入,它是可選引數。標記的半徑受傳遞給此引數的值影響。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="age",data=titanic,y="who",size=10)
plt.show()
輸出
生成的輸出圖表如下所示:
正如我們在圖表中看到的,標記的大小已經大大增加,這是因為 size 引數傳遞了值 10,因此標記的半徑為 10。
示例 3
現在,我們將瞭解 hue 對映如何影響生成的圖表/輸出。由於我們使用的是泰坦尼克號資料集,並且它有 4 個分類變數,我們將其中一個傳遞給 x 或 y,另一個傳遞給 hue 引數。在這個示例中,我們將 alive 變數傳遞給 hue 引數。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age",hue="alive", data=titanic)
plt.show()
輸出
上面的程式碼將獲得如下所示的輸出。
示例 4
在這個示例中,我們將瞭解如何與上面使用的引數一起使用 dodge 引數。此引數接受布林值。如果使用 hue 巢狀,將 True 傳遞給此引數將分離不同 hue 層次的條帶。如果傳遞 False,則每個級別的點將彼此疊加繪製。可以使用以下程式碼行來使用 dodge 引數繪製圖表。
import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age", hue="alive",dodge=True,data=titanic)
plt.show()
輸出
上述程式碼行的輸出如下: