เมื่อต้องการสื่อสัดส่วนเพศหรือความต่างของคุณลักษณะในการทดสอบ A/B กราฟพีระมิดประชากรช่วยได้มาก เห็นอคติรายช่วงอายุชัดเจน
import numpy as np
import matplotlib.pyplot as plt
age_groups = ["18-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54"]
male = np.array([4200, 3800, 3300, 2700, 2200, 1600, 1200])
female = np.array([4000, 3600, 3500, 2900, 2400, 1700, 1300])
fig, ax = plt.subplots(figsize=(6, 4.8))
ax.barh(age_groups, male, color="#38bdf8", label="ชาย")
ax.barh(age_groups, -female, color="#f472b6", label="หญิง")
ax.set_xlabel("จำนวนผู้ใช้")
ax.set_title("สมาชิกตามช่วงอายุ (พีระมิดประชากร)")
ax.set_xlim(-4500, 4500)
ax.set_xticks([-4000, -2000, 0, 2000, 4000], labels=["4000", "2000", "0", "2000", "4000"])
ax.legend(loc="upper right")
for idx, (m_val, f_val) in enumerate(zip(male, female)):
ax.text(m_val + 80, idx, f"{m_val}", va="center")
ax.text(-f_val - 280, idx, f"{f_val}", va="center")
ax.axvline(0, color="#0f172a", linewidth=1)
ax.spines[["right", "top"]].set_visible(False)
ax.grid(axis="x", alpha=0.2)
fig.tight_layout()
plt.show()

อ่านอย่างไร #
- ความต่างซ้าย-ขวาบอกอคติของแต่ละกลุ่ม ยิ่งต่างมากยิ่ง偏差สูง
- ใช้สเกลเดียวกันเพื่อให้เทียบได้แม่นยำ
- ใส่ตัวเลขกำกับเพื่ออ่านจำนวนได้ทันที