ดูเหมือนว่าคุณต้องการaxvspan
มากกว่าหนึ่งในการเติมระหว่างฟังก์ชัน ความแตกต่างคือaxvspan
(และaxhspan
) จะเติมเต็มขอบเขต y (หรือ x) ทั้งหมดของพล็อตไม่ว่าคุณจะซูมอย่างไร
ตัวอย่างเช่นใช้axvspan
เพื่อเน้น x-region ระหว่าง 8 ถึง 14:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, alpha=0.5, color='red')
plt.show()

คุณสามารถใช้fill_betweenx
การทำเช่นนี้ แต่ extents (ทั้ง x และ y) ของสี่เหลี่ยมจะอยู่ในพิกัดข้อมูล ด้วยaxvspan
ค่าขยาย y ของสี่เหลี่ยมผืนผ้าเริ่มต้นเป็น 0 และ 1 และอยู่ในพิกัดแกน (กล่าวคือเปอร์เซ็นต์ของความสูงของพล็อต)
เพื่อแสดงให้เห็นถึงสิ่งนี้เรามาทำให้รูปสี่เหลี่ยมผืนผ้าขยายจาก 10% เป็น 90% ของความสูง (แทนที่จะใช้เต็มขอบเขต) ลองซูมหรือแพนและสังเกตว่าส่วนขยาย y บอกว่าคงที่ในพื้นที่แสดงผลในขณะที่ x-extents เคลื่อนที่ไปพร้อมกับการซูม / แพน:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color='red')
plt.show()

fill_between
สำหรับเส้นแนวตั้ง "กระดิก" มากขึ้นลองดูที่transform
พารามิเตอร์ (และคำตอบนี้ )