Matplotlib: menggambar garis kisi di belakang elemen grafik lainnya


124

Di Matplotlib, saya membuat garis putus-putus sebagai berikut:

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

namun, saya tidak dapat mengetahui bagaimana (atau bahkan jika memungkinkan) membuat garis kisi digambar di belakang elemen grafik lainnya, seperti batang. Mengubah urutan penambahan kisi versus penambahan elemen lain tidak membuat perbedaan.

Apakah mungkin untuk membuatnya sehingga garis kisi muncul di belakang yang lainnya?


10
ax.set_axisbelow(True)masih bekerja. Juga bagus untuk keluaran pdf ...
BandGap

5
Saya akan berharap ax.set_axisbelow(True)menjadi default ...
PatrickT

Jawaban:


122

Menurut ini - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - Anda dapat menggunakanAxis.set_axisbelow(True)

(Saat ini saya menginstal matplotlib untuk pertama kalinya, jadi tidak tahu apakah itu benar - Saya baru saja menemukannya dengan googling "matplotlib z order grid" - "z order" biasanya digunakan untuk mendeskripsikan hal semacam ini (z adalah sumbu "di luar halaman"))


Mungkinkah memiliki garis kisi di bawah batang / garis sambil mempertahankan label di atasnya? Saya juga memposting
pertanyaan

Mungkin matplotlib.1069221.n5.nabble.com/… ini , benang kuno sekalipun.
Jacques Kvam

86

Bagi saya, tidak jelas bagaimana menerapkan jawaban andrew cooke, jadi ini adalah solusi lengkap berdasarkan itu:

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

34

Jika Anda ingin memvalidasi pengaturan untuk semua gambar, Anda dapat mengatur

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

atau

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

Ia bekerja untuk Matplotlib> = 2.0.


8

Saya memiliki masalah yang sama dan yang berikut ini berhasil:

[line.set_zorder(3) for line in ax.lines]
fig.show() # to update

Tingkatkan 3ke nilai yang lebih tinggi jika tidak berhasil.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.