พารามิเตอร์ hue ใน sns.swarmplot() ใช้จัดกลุ่มจุดข้อมูล (swarms) ตาม ตัวแปรหมวดหมู่ที่สอง** ภายในกลุ่มหลัก (x หรือ y) สร้างการเปรียบเทียบระหว่างกลุ่มย่อยได้ชัดเจน
ขั้นตอนการทำงาน
1. นำเข้าไลบรารี
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
2. โหลดข้อมูล Cricketers2.csv
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\Cricketers2.csv")
3. วาด Swarm Plot กลุ่มตาม Role และ hue ตาม Academy
sns.swarmplot(x="Role", y="Matches", hue="Academy", data=dataFrame)
โค้ดตัวอย่างสมบูรณ์
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\Cricketers2.csv")
sns.set_theme(style="whitegrid")
# Swarm plot: x=Role, y=Matches, hue=Academy
sns.swarmplot(x="Role", y="Matches", hue="Academy", data=dataFrame)
plt.show()
ผลลัพธ์
แกน X = Role (Batsman, Bowler, All-rounder) แกน Y = Matches จุดข้อมูลแยกสีตาม Academy (Victoria, Western Australia, South Australia) อยู่ในแต่ละ Role

การทำงานของ hue ใน Swarm Plot
- สร้าง "dodged" swarms: จุดแต่ละสีข้างกันในกลุ่ม Role เดียวกัน
- Legend จะแสดงอัตโนมัติ
- รองรับ
hue_orderควบคุมลำดับสี - รองรับ
paletteปรับสี
ตัวอย่างปรับแต่ง
# ควบคุมลำดับ hue
sns.swarmplot(
x="Role", y="Matches", hue="Academy",
hue_order=["Victoria", "Western Australia", "South Australia"],
data=dataFrame
)
# ปรับสี palette
sns.swarmplot(x="Role", y="Matches", hue="Academy", data=dataFrame, palette="Set1")
# ปรับขนาดจุด และ dodge
sns.swarmplot(x="Role", y="Matches", hue="Academy", data=dataFrame, size=6, dodge=True)
# ไม่แยก dodge (จุดทับซ้อน)
sns.swarmplot(x="Role", y="Matches", hue="Academy", data=dataFrame, dodge=False)
Swarm Plot vs Strip Plot
| คุณสมบัติ | Swarm Plot | Strip Plot |
|---|---|---|
| จุดทับกัน | ไม่ทับ (non-overlapping) | ทับกัน (jitter) |
| ความเร็ว | ช้ากว่า (O(n²)) | เร็วมาก |
| ข้อมูลใหญ่ | ไม่เหมาะ (>100/group) | เหมาะ |
| ดู density | ได้ชัดเจน | ได้ประมาณ (กับ alpha) |
เมื่อไหร่ใช้ Swarm + Hue
- เปรียบเทียบการกระจายของกลุ่มย่อย (Academy) ภายในกลุ่มหลัก (Role)
- ข้อมูลไม่ใหญ่เกินไป
- ต้องการเห็นจุดข้อมูลจริงทุกจุด