Swarmplot จัดจุดไม่ให้ทับกัน

Visualize

Swarmplot จัดจุดไม่ให้ทับกัน

Created: Last updated: Read time: 1 min

Swarmplot จะขยับตำแหน่งของแต่ละจุดเล็กน้อยเพื่อไม่ให้ทับกัน ทำให้เรายังเห็นข้อมูลรายจุดพร้อมๆ กับรูปทรงการกระจายของแต่ละหมวดหมู่

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

fig, ax = plt.subplots(figsize=(6, 4))
sns.swarmplot(data=tips, x="day", y="total_bill", hue="sex", dodge=True, ax=ax)

ax.set_xlabel("วันในสัปดาห์")
ax.set_ylabel("ยอดบิล ($)")
ax.set_title("Swarmplot ของยอดบิลรายวัน")
ax.grid(axis="y", alpha=0.2)

fig.tight_layout()

plt.show()

Swarmplot แสดงยอดบิลรายวันพร้อมแยกเพศ

วิธีอ่าน #

  • ความสูงของแถวจุดสื่อความหนาแน่น และยังเห็น outlier เป็นจุดเดี่ยวๆ ชัดเจน
  • หากข้อมูลเยอะมาก การจัดตำแหน่งจะช้าลง ควรสุ่มข้อมูลหรือปรับขนาด size
  • dodge=True ช่วยแยกคอลัมน์ตามค่าของ hue เพื่อเทียบหมวดหมู่ย่อยได้สะดวก