Swarm plot menggeser setiap observasi agar tidak saling menumpuk, sehingga bentuk distribusi terlihat sambil mempertahankan nilai individu.
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("Hari kunjungan")
ax.set_ylabel("Total tagihan ($)")
ax.set_title("Swarm plot total tagihan per hari")
ax.grid(axis="y", alpha=0.2)
fig.tight_layout()
fig.savefig("static/images/visualize/distribution/swarmplot.svg")
Tips membaca #
- Tinggi tumpukan titik mewakili kerapatan lokal, dan outlier tetap terlihat sebagai titik sendiri.
- Untuk data yang sangat besar, swarm plot bisa berat dihitung; lakukan sampling atau ubah parameter
size. dodge=Truememisahkan setiap kategori hue ke kolom masing-masing sehingga perbandingan lebih mudah.