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

วิธีป้องกันจุดข้อมูลทับซ้อนใน Stripplot ด้วยพารามิเตอร์ Jitter ใน Seaborn

การแสดงผลข้อมูล (Data Visualization) ช่วยให้เข้าใจข้อมูลได้รวดเร็วโดยไม่ต้องดูตัวเลขหรือคำนวณซับซ้อน Seaborn เป็นไลบรารี Visualization ระดับสูง มี Theme สวยงาม และใช้งานง่าย

เมื่อตัวแปรเป็นข้อมูลหมวดหมู่ (Categorical) ไม่สามารถใช้ Scatter Plot หรือ Histogram ธรรมดาได้ ต้องใช้ Categorical Scatter Plots เช่น Stripplot และ Swarmplot

Stripplot ใช้เมื่อมีตัวแปรอย่างน้อยหนึ่งตัวเป็น Categorical ข้อมูลจะแสดงเรียงตามแกนหนึ่ง แต่จุดข้อมูลอาจทับซ้อนกัน ทำให้มองไม่เห็นความหนาแน่นของข้อมูล แก้ไขได้ด้วยพารามิเตอร์ jitter ซึ่งเพิ่มสุ่มเล็กน้อย (Random Noise) ตำแหน่งจุดข้อมูลตามแกนหมวดหมู่ ทำให้จุดกระจายออกและมองเห็นได้ชัดขึ้น

ไวยากรณ์ Stripplot

seaborn.stripplot(x, y, data, jitter=...)

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

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt

my_df = sb.load_dataset('iris')
sb.stripplot(x="species", y="petal_length", data=my_df, jitter=True)
plt.show()

ผลลัพธ์

วิธีป้องกันจุดข้อมูลทับซ้อนใน Stripplot ด้วยพารามิเตอร์ Jitter ใน Seaborn

คำอธิบาย

  • นำเข้า pandas, seaborn, matplotlib

  • โหลดชุดข้อมูล Iris จาก Seaborn (มาจาก scikit-learn)

  • เก็บข้อมูลใน DataFrame

  • ใช้ stripplot กำหนด x="species" (Categorical), y="petal_length" (Numerical)

  • ตั้งค่า jitter=True เพื่อกระจายจุดข้อมูลไม่ให้ทับซ้อน

  • แสดงกราฟด้วย plt.show()

เคล็ดลับ: สำหรับข้อมูลที่มีจุดมากและทับซ้อนหนัก แนะนำใช้ swarmplot แทน ซึ่งจัดตำแหน่งจุดอัตโนมัติไม่ให้ทับซ้อนเลย (แต่คำนวณช้ากว่า)