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

การเปลี่ยนค่าแท่งกราฟเป็นเปอร์เซ็นต์ใน Matplotlib

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

  • กำหนดขนาดรูปภาพและปรับระยะห่างรอบๆ subplots

  • สร้างรายการค่าความถี่ (frequencies)

  • สร้าง Figure ใหม่หรือเปิดใช้งาน Figure ที่มีอยู่

  • สร้างกราฟแท่งด้วยเมธอด bar()

  • วนลูปผ่านแท่งแต่ละอัน หาความสูง และใช้ annotate() วางค่าเปอร์เซ็นต์

  • แสดงรูปภาพด้วยเมธอด show()

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

import numpy as np
from matplotlib import pyplot as plt

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

frequencies = [7, 8, 5, 3, 6]
plt.figure()
p1 = plt.bar(np.arange(len(frequencies)), frequencies)

for rect1 in p1:
    height = rect1.get_height()
    plt.annotate(
        "{}%".format(height),
        (rect1.get_x() + rect1.get_width() / 2, height + .05),
        ha="center", va="bottom", fontsize=15
    )

plt.show()

ผลลัพธ์

กราฟแท่งแสดงค่าความถี่พร้อมตัวเลขเปอร์เซ็นต์บนยอดแต่ละแท่ง (เช่น 7%, 8%, 5%, 3%, 6%)

ข้อควรระวัง: ตัวอย่างนี้แสดงค่า Frequency ตรงๆ เป็นเปอร์เซ็นต์ หากต้องการคำนวณเปอร์เซ็นต์จริงจากผลรวม ต้องหารด้วยผลรวมทั้งหมดแล้วคูณ 100 ก่อน