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

Python Pandas - วาด Violin Plot ตั้งค่า Quartiles เป็นเส้นแนวนอนด้วย Seaborn

Violin Plot** รวม Box Plot และ Kernel Density Estimate (KDE) แสดงการกระจายตัวของข้อมูลละเอียดกว่า Box Plot เพียงอย่างเดียว ใน Seaborn ใช้ sns.violinplot() พารามิเตอร์ inner="quartile" จะแสดงเส้นควอไทล์ (Q1, Median, Q3) เป็นเส้นแนวนอนภายใน violin

ขั้นตอนการทำงาน

1. นำเข้าไลบรารี

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

2. โหลดข้อมูล Cricketers.csv

dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\Cricketers.csv")

3. วาด Violin Plot พร้อม Quartiles

sns.violinplot(
    x='Role',
    y='Age',
    order=["Batsman", "Bowler"],
    data=dataFrame,
    inner="quartile"
)

โค้ดตัวอย่างสมบูรณ์

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\Cricketers.csv")

# Violin plot พร้อม quartile lines
sns.violinplot(
    x='Role',
    y='Age',
    order=["Batsman", "Bowler"],
    data=dataFrame,
    inner="quartile"
)

plt.show()

ผลลัพธ์

Violin plot แสดงการกระจายอายุ (Age) ของ Batsman และ Bowler ภายใน violin มีเส้นแนวนอน 3 เส้น: Q1 (ล่าง), Median (กลาง), Q3 (บน)

Python Pandas - วาด Violin Plot ตั้งค่า Quartiles เป็นเส้นแนวนอนด้วย Seaborn

ค่า inner อื่นๆ

ค่า innerการแสดงผล
"box"Box plot ภายใน (default)
"quartile"เส้น Q1, Median, Q3 (แนวนอน)
"point"จุด median อย่างเดียว
"stick"เส้นแนวตั้งจาก center ไปจุดข้อมูล
Noneไม่แสดงอะไรภายใน (แค่ KDE outline)

พารามิเตอร์อื่นๆ ที่น่าสนใจ

# ควบคุมลำดับหมวดหมู่
order=["Batsman", "Bowler", "All-rounder"]

# แยกสีตาม hue
sns.violinplot(x='Role', y='Age', hue='Academy', data=df, inner="quartile", split=True)

# ปรับ bandwidth KDE
sns.violinplot(x='Role', y='Age', data=df, bw=0.2)

# Scale: 'area' (default), 'count', 'width'
sns.violinplot(x='Role', y='Age', data=df, scale='count', inner="quartile")

# ไม่ตัดหัวหาง violin
sns.violinplot(x='Role', y='Age', data=df, cut=0, inner="quartile")

Violin Plot vs Box Plot

  • Box Plot: สรุปสถิติชัดเจน (median, quartiles, outliers) เร็ว อ่านง่าย
  • Violin Plot: แสดง density distribution เต็มรูปแบบ เห็น modality (peaks) ได้
  • ใช้ Violin ตอน EDA เพื่อดูรูปทรงการกระจาย ใช้ Box ตอนรายงาน/นำเสนอ