Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสร้าง Boxplot ด้วย Matplotlib/Seaborn

ใช้ sns.boxplot() สร้าง Boxplot แสดงการกระจายข้อมูล (Median, Quartiles, Outliers)

ขั้นตอน

  1. ตั้งค่าขนาด Figure
  2. เตรียมข้อมูล Xticks
  3. สร้าง Boxplot ด้วย Seaborn
  4. ตั้งค่า Xticks และ Labels พร้อม Rotation
  5. แสดงผล

ตัวอย่างโค้ด


import seaborn as sns
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

xticks = [1, 4, 5, 2, 3]

# สร้าง Boxplot
ax = sns.boxplot(xticks)

# ตั้งค่า Tick Positions และ Labels
ax.set_xticks(xticks)
ax.set_xticklabels(["one", "two", "three", "four", "five"], rotation=45)

plt.show()

Boxplot แบบมีหลายกลุ่ม (Grouped)


import pandas as pd

# ข้อมูลตัวอย่าง
df = pd.DataFrame({
    'category': ['A', 'A', 'B', 'B', 'C', 'C'] * 10,
    'group': ['X', 'Y'] * 30,
    'value': np.random.randn(60)
})

sns.boxplot(data=df, x='category', y='value', hue='group')
plt.show()

Boxplot ด้วย Matplotlib ตรงๆ


# ข้อมูลหลายชุด
data = [np.random.normal(0, std, 100) for std in range(1, 4)]

fig, ax = plt.subplots()
bp = ax.boxplot(data, labels=['Std=1', 'Std=2', 'Std=3'], patch_artist=True)

# ปรับสี
colors = ['pink', 'lightblue', 'lightgreen']
for patch, color in zip(bp['boxes'], colors):
    patch.set_facecolor(color)

องค์ประกอบของ Boxplot

  • Box: Q1 ถึง Q3 (IQR)
  • Median Line: ค่ามัธยฐาน (Q2)
  • Whiskers: ขยายถึง 1.5*IQR
  • Outliers: จุดนอก Whiskers

ผลลัพธ์

Boxplot 5 กล่อง แสดงการกระจายของข้อมูล xticks พร้อม Label หมุน 45 องศา