พลอต boxplot จาก DataFrame ก่อน แล้ววนลูปคอลัมน์ สร้างจุด scatter จำลองการกระจาย (jitter) ด้วย np.random.normal() รอบตำแหน่งกล่อง แล้วพลอตทับซ้อน
ขั้นตอนการทำงาน
- ตั้งค่าขนาดรูปและเลย์เอาต์
- สร้าง DataFrame 2 คอลัมน์
- พลอต boxplot:
data.boxplot() - วนลูปคอลัมน์ สร้าง x ด้วย normal distribution รอบ index, y จากข้อมูล
- พลอต scatter ทับ boxplot
- แสดงผล
ตัวอย่างโค้ด
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = pd.DataFrame({"Box1": np.random.rand(10), "Box2": np.random.rand(10)})
data.boxplot()
for i, d in enumerate(data):
y = data[d]
x = np.random.normal(i + 1, 0.04, len(y))
plt.scatter(x, y)
plt.show()
ผลลัพธ์
