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

วิธีวาด Pie Chart เน้นชิ้นเดียวด้วย Python Matplotlib

บทนำ

Pie chart เป็นชาร์ตยอดนิยมสำหรับแสดงเปอร์เซ็นต์ ใน Matplotlib สามารถเน้นชิ้นหนึ่ง (explode) และปรับแต่งการแสดงผลได้หลากหลาย

ขั้นตอน

  1. ติดตั้ง matplotlib: pip install matplotlib
  2. นำเข้า: import matplotlib.pyplot as plt
  3. เตรียมข้อมูล:
    tennis_stats = (('Federer', 20), ('Nadal', 20), ('Djokovic', 17), ('Murray', 3))
    titles = [t for _, t in tennis_stats]
    players = [p for p, _ in tennis_stats]
  4. วาด Pie chart พื้นฐาน:
    plt.pie(titles, labels=players, autopct='%1.1f%%')
    plt.gca().axis('equal')
    plt.show()
  5. ปรับพารามิเตอร์น่าสนใจ:
    • startangle: หมุนจุดเริ่มต้นของชิ้น
    • counterclock: ทิศทาง (default True)
    • explode: แยกชิ้นที่ต้องการเน้น (tuple ความห่างจากศูนย์กลาง)
  6. แสดงค่าจริงแทนเปอร์เซ็นต์: เขียนฟังก์ชัน format_values ใช้ dictionary map เปอร์เซ็นต์ -> ค่าจริง ใส่ใน autopct

โค้ดเต็ม

import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter

tennis_stats = (('Federer', 20), ('Nadal', 20), ('Djokovic', 17), ('Murray', 3))
titles = [t for _, t in tennis_stats]
players = [p for p, _ in tennis_stats]

total = sum(titles)
values = {int(100 * t / total): t for _, t in tennis_stats}

def format_values(percent, **kwargs):
    value = values[int(percent)]
    return '{}'.format(value)

explode = (0, 0, 0.1, 0.0)  # เน้นชิ้นที่ 3 (Djokovic)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
plt.show()