Matplotlib ระดับกลาง

คำอธิบายประกอบ ข้อความ และเส้นอ้างอิง

ชี้ค่าสำคัญด้วย ax.annotate เพิ่มบันทึกด้วย ax.text และทำเครื่องหมายเป้าหมายด้วย axhline

บทนำ

กราฟที่ดีบอกผู้อ่านว่าควรมองตรงไหน ax.annotate เขียนป้ายพร้อมลูกศรชี้จุดข้อมูล ax.text วางข้อความตรงไหนก็ได้ ส่วน ax.axhline หรือ ax.axvline ลากเส้นอ้างอิง เช่น ค่าเฉลี่ยหรือเป้าหมาย

xy คือจุดที่ลูกศรชี้ และ xytext คือตำแหน่งของป้าย arrowprops ใช้วาดลูกศร ในกราฟที่แกนเป็นหมวดหมู่ข้อความ ตำแหน่ง x คือ 0, 1, 2 ไปเรื่อย ๆ เดือนที่ดีที่สุดจึงอยู่ที่ x = best axhline ลากเส้นค่าเฉลี่ยตลอดกราฟ และ ax.text อธิบายว่าเส้นประนั้นหมายถึงอะไร

ตัวแสดงภาพแบบโต้ตอบ

เลือกจุดที่จะใส่คำอธิบาย เอาลูกศรและเส้นค่าเฉลี่ยออก แล้วดูว่าโค้ดบรรทัดไหนวาดส่วนใด

ตัวอย่าง Matplotlib ที่รันได้

Matplotlib
รันโค้ด →
main.py
import matplotlib.pyplot as plt

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
sales = [12, 15, 14, 22, 19, 17]
best = sales.index(max(sales))
average = sum(sales) / len(sales)

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(months, sales, marker="o")
ax.annotate(f"Best month: {sales[best]}k", xy=(best, sales[best]), xytext=(best + 0.5, sales[best] + 1.5),
            arrowprops=dict(arrowstyle="->"))
ax.axhline(average, color="gray", linestyle="--")
ax.text(0, average + 0.4, f"average {average:.1f}k", color="gray")
ax.set_ylim(10, 25)
ax.set_title("Sales by month")
plt.show()
สร้างปุ่ม Run สำหรับตัวอย่างนี้ กราฟที่โค้ดนี้วาด
คำอธิบายประกอบ ข้อความ และเส้นอ้างอิง