ใช้ plt.annotate() วาง emoji ไปที่ด้านบนแท่งแต่ละแท่ง โดยคำนวณตำแหน่งจาก rect.get_x() + rect.get_width()/2 และ rect.get_height() ตั้งค่า fontsize ให้ใหญ่พอ
ขั้นตอนการทำงาน
- ตั้งค่าขนาดรูปและเลย์เอาต์
- เตรียมข้อมูล frequencies และ labels (emoji)
- พลอตแท่งด้วย
plt.bar() - วนลูปแท่ง ใช้
plt.annotate()วาง emoji ด้านบน - แสดงผล
ตัวอย่างโค้ด
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
freqs = [7, 8, 5, 3, 6]
labels = ['😊', '😲', '😂', '😃', '😛']
plt.figure()
p1 = plt.bar(np.arange(len(labels)), freqs)
for rect1, label in zip(p1, labels):
height = rect1.get_height()
plt.annotate(label, (rect1.get_x() + rect1.get_width()/2, height + 0.05),
ha="center", va="bottom", fontsize=30)
plt.show()
ผลลัพธ์
