ภาพรวม
บทความนี้สาธิตวิธีเพิ่มข้อความกำกับ (annotation) ให้แต่ละจุดข้อมูลบน Scatter Plot โดยใช้ข้อมูลจากคอลัมน์ของ Pandas DataFrame
ขั้นตอนการทำงาน
- กำหนดขนาดฟิกเกอร์และปรับ padding
- สร้าง DataFrame ที่มีคอลัมน์ x, y และ points (ข้อความกำกับ)
- สร้าง Scatter Plot ด้วย
df.plot.scatter() - ใช้
ax.annotate() วนลูปกำกับแต่ละจุดข้อมูล - แสดงผลด้วย
plt.show()
ตัวอย่างโค้ด
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(dict(
x=[1, 3, 2, 4, 5],
y=[0, 3, 1, 2, 5],
points=['Kiran', 'Raju', 'Raja', 'Javed', 'Rishi']
))
ax = df.plot.scatter(x='x', y='y', alpha=0.5)
for i, txt in enumerate(df.points):
ax.annotate(txt, (df.x.iat[i] + 0.05, df.y.iat[i]))
plt.show()
ผลลัพธ์
Scatter plot ที่แต่ละจุดมีชื่อกำกับอยู่ข้างๆ

เคล็ดลับ
- ปรับตำแหน่งข้อความด้วย offset (เช่น +0.05) เพื่อไม่ให้ทับจุดข้อมูล
- ใช้
df.column.iat[i]เพื่อเข้าถึงค่าได้เร็วกว่าiloc - สำหรับ Bubble Chart ให้เพิ่มพารามิเตอร์
sสำหรับขนาดฟอง