Matplotlib: วาดเส้นกริดหลังองค์ประกอบกราฟอื่น ๆ


124

ใน Matplotlib ฉันสร้างเส้นกริดดังนี้:

fig = pylab.figure()    
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')

อย่างไรก็ตามฉันไม่สามารถหาวิธี (หรือแม้ว่าจะเป็นไปได้) ในการทำให้เส้นกริดถูกวาดไว้ด้านหลังองค์ประกอบกราฟอื่น ๆ เช่นแท่ง การเปลี่ยนลำดับของการเพิ่มตารางเทียบกับการเพิ่มองค์ประกอบอื่น ๆ ไม่ได้สร้างความแตกต่าง

เป็นไปได้หรือไม่ที่จะทำให้เส้นกริดปรากฏอยู่ด้านหลังทุกสิ่งทุกอย่าง?


10
ax.set_axisbelow(True)ยังใช้งานได้ ยังดีสำหรับเอาต์พุต pdf ...
BandGap

5
ฉันคาดว่าax.set_axisbelow(True)จะเป็นค่าเริ่มต้น ...
PatrickT

คำตอบ:


122

ตามนี้ - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - คุณสามารถใช้Axis.set_axisbelow(True)

(ฉันกำลังติดตั้ง matplotlib เป็นครั้งแรกดังนั้นไม่รู้ว่าถูกต้องหรือไม่ - ฉันเพิ่งค้นพบโดย googling "matplotlib z order grid" - "z order" มักจะใช้เพื่ออธิบายลักษณะนี้ (z เป็นแกน "ออกจากหน้า"))


เป็นไปได้ไหมที่จะมีเส้นตารางด้านล่างแถบ / เส้นในขณะที่ยึดป้ายกำกับไว้ด้านบน ฉันยังโพสต์ quesiton นี้แยกต่างหากstackoverflow.com/questions/29522447/…
joelostblom

มันอาจจะเป็นmatplotlibนี้ก็ได้1069221.n5.nabble.com/…แต่ด้ายโบราณ
Jacques Kvam

86

สำหรับฉันแล้วมันไม่ชัดเจนว่าจะใช้คำตอบของ Andrew Cooke อย่างไรดังนั้นนี่จึงเป็นวิธีแก้ปัญหาที่สมบูรณ์โดยพิจารณาจาก:

ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')

35

หากคุณต้องการตรวจสอบการตั้งค่าสำหรับตัวเลขทั้งหมดคุณสามารถตั้งค่าได้

plt.rc('axes', axisbelow=True)

หรือ

plt.rcParams['axes.axisbelow'] = True

ใช้งานได้กับ Matplotlib> = 2.0


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.