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

การวาด Pie Chart จาก Pandas DataFrame ด้วย Matplotlib

การสร้าง Pie Chart (แผนภูมิวงกลม) จากข้อมูลใน Pandas DataFrame ด้วย Matplotlib สามารถทำได้อย่างง่ายดายโดยใช้เมธอด plot.pie() ที่สร้างขึ้นมาสำหรับ Pandas โดยเฉพาะ

ขั้นตอนการสร้าง Pie Chart

  1. ตั้งค่าขนาด Figure และ Padding
  2. สร้าง DataFrame จากข้อมูลตาราง 2 มิติ
  3. ตั้งค่า Index เป็นหมวดหมู่ (Categories)
  4. ใช้ df.plot.pie() พร้อมกำหนดคอลัมน์ค่า (y) และรูปแบบแสดงผล
  5. แสดงผลด้วย plt.show()

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

import pandas as pd
import matplotlib.pyplot as plt

# ตั้งค่าขนาดและเลย์เอาต์
plt.rcParams["figure.figsize"] = [8, 6]
plt.rcParams["figure.autolayout"] = True

# สร้าง DataFrame
df = pd.DataFrame({
    'กิจกรรม': ['นอนหลับ', 'ออกกำลังกาย', 'ทำงาน', 'เรียนรู้', 'พักผ่อน', 'กิน/เดินทาง'],
    'ชั่วโมง': [8, 1.5, 9, 3, 1.5, 1]
})

# ตั้งค่า Index และวาด Pie Chart
df.set_index('กิจกรรม').plot.pie(
    y='ชั่วโมง',
    autopct='%1.1f%%',      # แสดงเปอร์เซ็นต์ 1 ตำแหน่งทศนิยม
    startangle=90,          # เริ่มที่มุม 90 องศา (ด้านบน)
    counterclock=False,     # เข็มนาฬิกา
    legend=False,           # ไม่แสดง Legend (มี Label อยู่แล้ว)
    colormap='Set3',        # ชุดสี
    fontsize=12,
    title='การแบ่งเวลาในแต่ละวัน (ชั่วโมง)'
)

plt.ylabel('')  # ซ่อน label แนวตั้ง
plt.show()

ผลลัพธ์

จะได้ Pie Chart ที่แสดงสัดส่วนเวลาแต่ละกิจกรรมในแต่ละวัน พร้อมเปอร์เซ็นต์และสีสันที่สวยงาม

ตัวเลือกที่น่าสนใจ

  • explode: ดึงชิ้นส่วนออกมาเน้น (เช่น explode=[0.1, 0, 0, 0, 0, 0])
  • shadow=True: เพิ่มเงาให้ Pie Chart
  • colors: ระบุสีแต่ละชิ้นด้วย List ของสี
  • wedgeprops: ปรับขอบ ช่องว่าง รูปทรง (เช่น wedgeprops={'width': 0.5} ทำ Donut Chart)

ตัวอย่าง Donut Chart

df.set_index('กิจกรรม').plot.pie(
    y='ชั่วโมง',
    autopct='%1.1f%%',
    startangle=90,
    wedgeprops={'width': 0.4, 'edgecolor': 'white', 'linewidth': 2},
    colormap='tab20',
    title='Donut Chart: การแบ่งเวลา'
)
plt.show()