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

การลบฉลาก (Labels) ใน Pie Chart แบบมีเงื่อนไข (Conditional) ใน Matplotlib

ภาพรวม

ใน Pie Chart หากมีสไลด์เล็กมาก ฉลากจะทับซ้อนและอ่านยาก ใช้ฟังก์ชัน lambda ใน autopct เพื่อแสดง % เฉพาะสไลด์ที่ใหญ่พอ

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

  • กำหนดขนาดฟิกเกอร์
  • สร้าง DataFrame มีคอลัมน์ activities และ hours
  • ใช้ df.set_index('activities').plot.pie()
  • ใน autopct ใช้ lambda: lambda p: format(p, '.2f') if p > 25 else None
  • แสดงผล

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

import pandas as pd
from matplotlib import pyplot as plt

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

df = pd.DataFrame({
    'activities': ['sleep', 'exercise', 'work', 'study'],
    'hours': [8, 1, 9, 4]
})

df.set_index('activities').plot.pie(
    y='hours',
    legend=False,
    autopct=lambda p: format(p, '.2f') if p > 25 else None
)
plt.show()

ผลลัพธ์

Pie chart แสดง % เฉพาะ sleep (36.36%) และ work (40.91%) ส่วน exercise (4.55%) และ study (18.18%) ไม่แสดง

การลบฉลาก (Labels) ใน Pie Chart แบบมีเงื่อนไข (Conditional) ใน Matplotlib การลบฉลาก (Labels) ใน Pie Chart แบบมีเงื่อนไข (Conditional) ใน Matplotlib

ประยุกต์ใช้

  • เปลี่ยนเงื่อนไข p > 25 เป็นค่าอื่น เช่น 10, 5
  • ใช้ pctdistance และ labeldistance ปรับตำแหน่งข้อความ
  • ร่วมกับ explode ตัดสไลด์ออกมาเน้น