stripplot() 和 swarmplot() 的區別是什麼?
什麼是 swarmplot() 和 stripplot()?
在 Python 的 seaborn 庫中,swarmplot() 使用一種稱為“蜂群”的技術來定位點,該技術調整點以避免重疊。這將生成一個點分散且更容易區分的圖,但不會保留類別內點的相對位置。而 stripplot() 將點定位在分類軸上,每個刻度一個類別。點不會被調整以避免重疊,因此如果同一類別中有許多點,它們可能會重疊。
特性 |
stripplot() |
swarmplot() |
|---|---|---|
用途 |
顯示單個變數的分佈 |
顯示單個變數的分佈,同時避免點之間的重疊 |
視覺化 |
點沿數軸繪製,並使用抖動位置偏移來避免重疊 |
點定位在數軸上,使其不會相互重疊 |
實用性 |
用於顯示單個變數的分佈,尤其是在資料點數量很大且點之間重疊很嚴重的情況下 |
用於顯示單個變數的分佈,同時避免點之間的重疊並保留各個資料點的空間資訊 |
重疊 |
點可能嚴重重疊 |
點不會嚴重重疊 |
可擴充套件性 |
隨著資料點數量的增加,可擴充套件性較差 |
隨著資料點數量的增加,可擴充套件性更好 |
stripplot() 和 swarmplot() 都是 Python 的 Seaborn 庫中的函式,用於視覺化不同類別數值變數的分佈。
Strip Plot(條形圖)
條形圖是一種單軸散點圖,用於視覺化多個不同的單維值的分佈。值顯示為沿單軸的點,並且大小相同的點可能會重疊。可以更改點的顏色或不透明度以表示重疊的值,或者可以使用抖動圖或計數圖來代替。通常,許多條形圖並排顯示,以檢查跨不同值、組或範圍的資料點的分佈。
示例 1
import pandas as p
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Quantity": [15,26,17,18,15,36,27,18,25,16,17,28,15,16,17,28],
"Price":[1900,1000,1500,1600,1300,1400,1500,1800,1100,1200,1400,1500,1600,1700,1800,1900],
"Month" : [2,3,2,3,2,3,2,3,4,4,4,5,5,5,4,3],
"Merchandise":['X','X','X','X','Z','Z','Z','Z',
'Y','Y','Y','Y','X','X','Z','Z']})
sns.swarmplot(data = df, y = "Price", x = "Quantity")
plt.show()
程式碼解釋
我們在程式碼開頭包含了 Pandas 為 pd,matplotlib.pyplot 為 plt,Seaborn 為 sns 的包。然後使用 DataFrame() 函式指定資料集合。此函式連線到 Pandas 模組。建立了四個單獨的陣列。第一個陣列顯示售罄商品的數量。第二個陣列顯示商品的價格。第三個陣列保留月份的記錄。最後一個數組列出了產品名稱。
在下一步中,我們使用 swarmplot() 方法生成蜂群圖。最後,我們使用 matplotlib.pyplot 庫的 display() 函式。
示例 2
統計類別平面為每個“色相”引數維度指定了一個區域。當我們使用“色相”選項並將“dodge”引數設定為 True 時,物件會針對不同的色相變化而分離。“palette”屬性表示多個色相屬性的陰影。
import seaborn
import matplotlib.pyplot as plt
seaborn.set(style="whitegrid")
tips = seaborn.load_dataset("tips")
seaborn.swarmplot(x="day", y="total_bill", hue="smoker",
data=tips, palette="Set2", dodge=True)
plt.show()
程式碼解釋
在新增 matplotlib.pyplot 和 Seaborn 庫後,我們呼叫 Seaborn 包中的 set() 方法。我們向此函式提供樣式作為引數。我們將樣式引數的值設定為“white grid”。它顯示圖形的背景顏色。
現在,我們使用載入的 dataset() 方法來獲取內建資料框。此函式採用輸入“tips”,並從 Seaborn 標頭檔案中派生。接下來,我們使用 swarmplot() 函式構建蜂群圖。在此,函式的引數是兩個軸的標題、顏色值、資料、調色盤和躲避。y 軸顯示總賬單的記錄,而 x 軸顯示日期的記錄。
Swarm Plot(蜂群圖)
當您希望顯示所有觀察結果以及對潛在分佈的描述時,可以單獨建立蜂群圖,也可以將其作為箱線圖或小提琴圖的補充。
為了適當地排列點,需要在資料和點座標之間進行精確的轉換。因此,必須在建立繪圖之前設定非預設軸限制。
可以使用各種格式傳遞輸入資料,包括:
直接傳遞給 x、y 和/或 hue 引數的列表、numpy 或 pandas 資料向量表示的序列物件。
“長格式”DataFrame,在這種情況下,資料繪圖由 x、y 和 hue 變數控制。
繪製每個數值列的“寬格式”DataFrame。
向量集合或陣列。
示例 1
繪製單個水平蜂群圖:
import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.swarmplot(x=tips["total_bill"])
示例 2
根據類別(此處為地區和事件)對資料點進行分組。
import seaborn
seaborn.set(style='whitegrid')
fmri = seaborn.load_dataset("fmri")
seaborn.swarmplot(x="timepoint",
y="signal",
hue="region",
data=fmri)
結論
總而言之,stripplot() 和 swarmplot() 是 Python Seaborn 庫中用於建立散點圖的函式。這些圖視覺化兩個變數之間的關係和資料分佈。
Stripplot() 是一個函式,它繪製資料的散點圖,點沿 x 軸展開。它允許您指定 x 和 y 變數、資料以及各種自定義選項,例如點的顏色、大小和樣式。Stripplot() 可用於視覺化分類變數的每個類別中連續變數的分佈。
Swarmplot() 是一個函式,它繪製資料的散點圖,點沿 x 軸展開以避免重疊。它允許您指定 x 和 y 變數、資料以及各種自定義選項,例如點的顏色、大小和樣式。Swarmplot() 可用於視覺化分類變數的每個類別中連續變數的分佈,尤其是在點數較多的情況下。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP