2009-11-13 14 views
64

matplotlib में पीछे ड्रा ग्रिड लाइन, मैं ग्रिड लाइन के रूप में निम्नानुसार धराशायी कर:matplotlib: अन्य ग्राफ तत्वों

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

हालांकि, मैं बाहर नहीं मिल सकता है कैसे (या यहां तक ​​कि अगर यह संभव है) बनाने के लिए ग्रिड लाइनों को अन्य ग्राफ तत्वों जैसे कि सलाखों के पीछे खींचा जा सकता है। ग्रिड बनाम अन्य तत्वों को जोड़ने के क्रम को बदलने से कोई फर्क नहीं पड़ता।

क्या यह संभव है कि ग्रिड लाइनें बाकी सब कुछ के पीछे दिखाई दें?

+7

'ax.set_axisbelow (True) 'अभी भी काम करता है। पीडीएफ आउटपुट के लिए भी अच्छा ... – BandGap

उत्तर

61

इस के अनुसार - http://old.nabble.com/axis-elements-and-zorder-td6119088.html - मैं सिर्फ "z आदेश ग्रिड matplotlib" googling द्वारा यह पाया - आप Axis.set_axisbelow(True)

(मैं वर्तमान में पहली बार के लिए matplotlib स्थापित करने कर रहा हूँ, ताकि अगर सही है पता नहीं है का उपयोग कर सकते हैं - "Z क्रम" आम तौर पर बात इस तरह की (जेड "पृष्ठ से बाहर" अक्ष जा रहा है))

+13

एक्सिस.सेट_एक्सिसबेलो (ट्रू) – Joeya

+0

क्या शीर्ष पर लेबल बनाए रखते हुए बार/रेखा के नीचे ग्रिडलाइन होना संभव है? मैंने इस quesiton को अलग से पोस्ट किया है http://stackoverflow.com/questions/29522447/in-matplotlib-is-there-a-way-to-set-gridlines-below-bars-lines-patches-while-re –

+0

लिंक अब काम नहीं कर रहा है मुझे डर है। – pingul

7

मैं एक ही समस्या थी वर्णन करने के लिए प्रयोग किया जाता है और काम किया है:

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

बढ़ाएँ 3 को ए उच्च मूल्य अगर यह काम नहीं करता है।

+7

यह काम करता है क्योंकि 'ग्रिड' में 'zorder = 2.5' है। – farenorth

47

मेरे लिए, यह स्पष्ट नहीं है कि कैसे एंड्रयू कुक का जवाब लागू करने के लिए था, तो यह एक पूर्ण समाधान है कि पर आधारित है:

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

आप सभी आंकड़े के लिए सेटिंग को मान्य करने के लिए चाहते हैं, तो आप सेट कर सकते हैं

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

या

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

यह काम करता है Matplotlib> = 2.0 के लिए।

संबंधित मुद्दे