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

การซ่อน First และ Last Tick Labels ของ Y-axis ใน Subplots

เมื่อสร้าง Subplots หลายแถว อาจต้องการซ่อน Tick Label แรกและสุดท้ายของแกน Y เพื่อลดการทับซ้อน บทความนี้ใช้ plt.setp() กับ visible=False

ขั้นตอน

  1. ตั้งค่าขนาด Figure
  2. สร้าง Subplots 2 แถว (sharex=True)
  3. วนลูปผ่าน Axes แต่ละอัน
  4. ซ่อน Tick Label แรกและสุดท้ายของแกน Y
  5. แสดงผล

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


import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, ax = plt.subplots(2, sharex=True)

for a in ax:
    # ซ่อน Tick Label แรก (index 0)
    plt.setp(a.get_yticklabels()[0], visible=False)
    # ซ่อน Tick Label สุดท้าย (index -1)
    plt.setp(a.get_yticklabels()[-1], visible=False)

plt.show()

การประยุกต์ใช้เพิ่มเติม


# ซ่อนเฉพาะ Subplot แรก
plt.setp(ax[0].get_yticklabels()[0], visible=False)

# ซ่อนทุก n tick labels
for i, label in enumerate(a.get_yticklabels()):
    if i % 2 == 0:  # ซ่อนคู่
        label.set_visible(False)

# ซ่อนโดยใช้ Slice
plt.setp(a.get_yticklabels()[1:-1], visible=True)  # แสดงแค่กลาง

ผลลัพธ์

Subplots 2 แถว แกน Y ซ่อนตัวเลขแรกและสุดท้าย ทำให้ดูสะอาดขึ้นเมื่อ Subplots อยู่ติดกัน