คำนวณจุดกึ่งกลางของแต่ละ bin จาก patches ที่คืนค่าจาก plt.hist() โดย (patch._x0 + patch._x1)/2 แล้วตั้งค่า xticks และ labels ใหม่
ขั้นตอนการทำงาน
- ตั้งค่าขนาดรูปและเลย์เอาต์
- สร้างข้อมูลสุ่มและจำนวน bins
- พลอต histogram รับคืน
n, bins, patches - คำนวณตำแหน่งกึ่งกลาง:
ticks = [(p._x0 + p._x1)/2 for p in patches] - ตั้งค่า xticks ใหม่ด้วยตำแหน่งกึ่งกลางและ labels
- แสดงผล
ตัวอย่างโค้ด
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.random.randn(1000)
n_bins = 10
n, bins, patches = plt.hist(x, bins=n_bins, edgecolor='black')
ticks = [(patch._x0 + patch._x1)/2 for patch in patches]
ticklabels = [i for i in range(n_bins)]
plt.xticks(ticks, ticklabels)
plt.show()
ผลลัพธ์
