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

วิธีวางฉลาก (Label) บน Bubble Chart/Scatter Plot จากคอลัมน์ Pandas DataFrame

ภาพรวม

บทความนี้สาธิตวิธีเพิ่มข้อความกำกับ (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 ที่แต่ละจุดมีชื่อกำกับอยู่ข้างๆ

วิธีวางฉลาก (Label) บน Bubble Chart/Scatter Plot จากคอลัมน์ Pandas DataFrame วิธีวางฉลาก (Label) บน Bubble Chart/Scatter Plot จากคอลัมน์ Pandas DataFrame

เคล็ดลับ

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