2013-04-18 5 views
44

में लाइन साजिश में प्रदर्शित करने के मैं अपने भूखंड पर दोनों क्षैतिज और ऊर्ध्वाधर ग्रिड लाइन लेकिन केवल क्षैतिज ग्रिड लाइन डिफ़ॉल्ट रूप से दिखाई दे रहे हैं करना चाहते हैं। मैं अजगर में एक SQL क्वेरी से एक pandas.DataFrame उपयोग कर रहा हूँ x- अक्ष पर तारीखों के साथ एक लाइन साजिश उत्पन्न करने के लिए। मुझे यकीन नहीं है कि वे तिथियों पर क्यों नहीं दिखते हैं और मैंने इसका उत्तर खोजने की कोशिश की है लेकिन एक नहीं मिला।हो रही ऊर्ध्वाधर ग्रिडलाइनें matplotlib

सभी मैं लेखाचित्र तैयार करने का इस्तेमाल किया है नीचे सरल कोड है।

data.plot() 
grid('on') 

डेटा डेटाफ्रेम है जिसमें SQL क्वेरी से दिनांक और डेटा शामिल है।

मैं भी नीचे दिए गए कोड को जोड़ने की कोशिश की है लेकिन मैं अभी भी नहीं खड़ी ग्रिड लाइन के साथ एक ही उत्पादन मिलता है।

ax = plt.axes()   
ax.yaxis.grid() # horizontal lines 
ax.xaxis.grid() # vertical lines 

कोई सुझाव?

enter image description here

+0

'data.plot (ग्रिड =" पर ")' के लिए काम किया मुझे – Markus

उत्तर

52

आप अपने कॉल, उदा बूलियन आर्ग देने के लिए आवश्यकता हो सकती है ax.yaxis.grid(True) बजाय ax.yaxis.grid() का उपयोग करें। साथ ही, जब से तुम उन दोनों का उपयोग कर रहे आप बल्कि प्रत्येक आयाम के लिए एक बार यह कर की तुलना में ax.grid में गठजोड़ कर सकते हैं, जो दोनों पर काम करता है।

ax = plt.gca() 
ax.grid(True) 

जो आपको हल करना चाहिए।

+0

मैंने कोशिश की लेकिन किसी कारण से यह अभी भी –

+1

जैसा दिखता है क्या आप इसे इंटरैक्टिव दुभाषिया में कर रहे हैं? सुनिश्चित करें कि आप ग्रिड _before_ कॉलिंग 'plt.show() ' – wim

+0

सेट कर रहे हैं, मैं iPython का उपयोग कर रहा हूं। मैंने पीएलटी जोड़ने की कोशिश की है।दिखाएं() इससे कोई फर्क नहीं पड़ता। –

23

plt.gca().xaxis.grid(True) मुझे

+3

'myaxes.grid (जो = 'x')' matplotlib संस्करण 1.4.2 के साथ मेरे लिए काम नहीं कर रहा था ... 'कौन सा कीवर्ड बिल्कुल काम नहीं कर सका। हालांकि, 'myaxes.xaxis.grid (True) ने चाल की है और अवधारणात्मक रूप से बेहतर आईएमओ है। ओह, और ग्रिड को डेटा के पीछे रखने के लिए उपयोगी 'myaxes.set_axisbelow (True)' विधि के बारे में मत भूलना। – travc

+0

आखिरकार, यह वही है जो मैं हर जगह ढूंढ रहा हूं! – Wok

3

शायद इस समस्या का समाधान कर सकते हैं के लिए समाधान साबित हुई: matplotlib, define size of a grid on a plot

ax.grid(True, which='both') 

सच यह है कि ग्रिड काम कर रहा है, लेकिन वहाँ केवल एक 00 में वी ग्रिड है : 00 और दूसरों में कोई ग्रिड नहीं। मैं एक ही समस्या को पूरा करता हूं कि कई दिनों में 1 नवंबर में केवल एक ग्रिड है।

0

According to matplotlib documentation, Axes वर्ग grid() विधि के हस्ताक्षर इस प्रकार है:

Axes.grid (ख = कोई नहीं है, जो 'प्रमुख' =, अक्ष = 'दोनों', ** kwargs)
अक्ष ग्रिड को चालू या बंद करें।

which प्रमुख टिक ग्रिड, मामूली टिक ग्रिड, या दोनों प्रभावित हैं या नहीं, यह नियंत्रित करने के लिए 'प्रमुख' (डिफ़ॉल्ट), 'मामूली', या 'दोनों' हो सकता है।

axis ग्रिडलाइन के सेट को नियंत्रित करने के लिए 'दोनों' (डिफ़ॉल्ट), 'x', या 'y' हो सकता है।

तो आदेश के लिए दोनों एक्स अक्ष और y अक्ष, हम निम्नलिखित कोड का उपयोग कर सकते ग्रिड लाइन को दिखाने के लिए:

ax = plt.gca() 
ax.grid(which='major', axis='both', linestyle='--')