พารามิเตอร์ order ใน sns.swarmplot() ใช้ควบคุมลำดับการแสดงหมวดหมู่บนแกน (ควบคุมได้ทั้ง 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 ระบุ order ของ Academy
sns.swarmplot(
x="Academy",
y="Matches",
order=["Victoria", "Western Australia", "South Australia"],
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 ควบคุมลำดับ Academy
sns.swarmplot(
x="Academy",
y="Matches",
order=["Victoria", "Western Australia", "South Australia"],
data=dataFrame
)
plt.show()
ผลลัพธ์
Swarm plot แสดงจำนวนแมตช์ (Matches) จัดกลุ่มตามสถาบัน (Academy) ลำดับจากซ้ายไปขวา: Victoria → Western Australia → South Australia

การใช้งาน order parameter
| สถานการณ์ | โค้ด |
|---|---|
| ควบคุมแกน X (categorical) | order=["A", "B", "C"] |
| ควบคุมแกน Y (categorical) | order=["A", "B", "C"] (กับ y=...) |
| ควบคุม hue order | hue_order=["X", "Y", "Z"] |
| ดึงจากข้อมูล (sorted unique) | order=df['cat'].unique() |
| เรียงตามค่าสถิติ | order=df.groupby('cat')['val'].median().sort_values().index |
ตัวอย่างขั้นสูง: เรียงตาม Median
# เรียง Academy ตาม median Matches มากไปน้อย
order = dataFrame.groupby('Academy')['Matches'].median().sort_values(ascending=False).index
sns.swarmplot(x="Academy", y="Matches", order=order, data=dataFrame)
ร่วมกับ hue
sns.swarmplot(
x="Role",
y="Matches",
hue="Academy",
hue_order=["Victoria", "Western Australia", "South Australia"],
data=dataFrame
)
หมายเหตุ
orderต้องเป็น list-like ของค่าที่มีอยู่จริงในข้อมูล- ค่าที่ไม่อยู่ใน order จะไม่แสดง (ถ้าต้องการแสดงหมด ใช้
hue_orderแทน) - ใช้ร่วมกับ
dodge=True(default) เมื่อมี hue เพื่อแยกกลุ่มชัดเจน