การกำจัดช่องว่างระหว่างซับพลอตใน Matplotlib สามารถทำได้โดยใช้คลาส GridSpec ร่วมกับการตั้งค่า wspace และ hspace ให้เป็นค่าต่ำหรือศูนย์ วิธีนี้ให้การควบคุมเลย์เอาต์ได้ละเอียดกว่า subplots_adjust()
ขั้นตอนการทำงาน
- ตั้งค่าขนาดรูปและระยะห่างอัตโนมัติ
- สร้าง GridSpec กำหนดแถวและคอลัมน์ (เช่น 3x3)
- ปรับพารามิเตอร์ grid ด้วย
gs.update(wspace=0, hspace=0) - วนลูปเพิ่มซับพลอตแต่ละช่องด้วย
plt.subplot(gs[i]) - ตั้งค่าอัตราส่วนภาพด้วย
set_aspect('equal') - แสดงผลด้วย
plt.show()
ตัวอย่างโค้ด
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
gs1 = gridspec.GridSpec(3, 3)
gs1.update(wspace=0.0, hspace=0.0) # ลบช่องว่างทั้งแนวนอนและแนวตั้ง
for i in range(9):
ax1 = plt.subplot(gs1[i])
ax1.set_aspect('equal')
plt.show()
ผลลัพธ์
