2015-11-19 5 views
6

मेरे पास एक आकृति बनाने के लिए एक पायथन कोड है। plt.show() के साथ इसे दिखाने के बाद, मैं आकृति को सहेजना चाहता हूं।
पहलू अनुपात, रिज़ॉल्यूशन इत्यादि को गड़बड़ करने से बचने के लिए, मैं savefig-कोड में कमांड का उपयोग नहीं करना चाहता हूं। इसके बजाय, मैं आकृति विंडो से "आकृति को बचाने" बटन का उपयोग करना चाहता हूं।
हालांकि, डिफ़ॉल्ट रूप से, यह मेरे घर फ़ोल्डर को सहेजने के लिए स्थान के रूप में संकेत देता है। मैं सहेजना चाहता हूं कि सहेजने वाली निर्देशिका में स्वचालित रूप से सहेजें जहां कोड निष्पादित किया गया था।
वर्तमान फ़ोल्डर (या कहीं और) को सहेजने के लिए मैं इस विंडो डिफ़ॉल्ट पथ को कैसे/कहां बदल सकता हूं?पायथन में "आकृति को बचाने" के लिए डिफ़ॉल्ट पथ कैसे बदलें?

मैं Change directory to the directory of a Python script शुरुआत में से इस आदेश की कोशिश की, लेकिन यह मदद नहीं की, फ़ाइल नाम सही ढंग से देता है, भले ही:

os.chdir(os.path.dirname(__file__)) 

उत्तर

6

ऐसा लगता है कि आप को बदलने चूक फ़ाइल matplotlibrc द्वारा इस सेट करने में सक्षम हो सकता है, http://matplotlib.org/users/customizing.html के तहत मार्गदर्शन की जाँच जहां महत्वपूर्ण लाइनों savefig मापदंडों के तहत कर रहे हैं:

# the default savefig params can be different from the display params 

... 

savefig.directory : ~  # default directory in savefig dialog box, 
           # leave empty to always use current working directory 

ऐसा लगता है this matplo में पेश किया गया था टीएलआईबी 1.3। मैं आप का उपयोग कर इस सेट कर सकते हैं लगता है,

mpl.rcParams["savefig.directory"] = os.chdir(os.path.dirname(__file__)) 

एक स्क्रिप्ट के शीर्ष पर या matplotlibrc फ़ाइल को बदलने के द्वारा। मैं अभी भी एमपीएल 1.1.1 का उपयोग कर रहा हूं, इसलिए परीक्षण नहीं कर सकता, क्षमा करें।

+0

बढ़िया! अब यह काम कर रहा है। मैं matplotrc को संपादित करके इसे ठीक नहीं कर सका, लेकिन फिर आपके आखिरी कमांड ने मुझे छोटे बदलाव के साथ मदद की: ... = "पथ-टू-माय-फोल्डर"। किसी भी तरह os.chdir काम नहीं किया था। पीएस: matplotrc सेटिंग पर एक नज़र रखना वास्तव में अच्छा है। अब मैं कई अन्य चीजों को भी बदल सकता हूं – physiker

+0

हाय @ फीसिकर, यह सुनकर खुशी हुई। मुझे आश्चर्य है कि 'matplotrc' फ़ाइल में इच्छित फ़ॉर्म के डायनामिक फ़ाइल पथ सेट करना भी संभव है। यदि यह matplotlib आयात होने पर बस एक स्क्रिप्ट की तरह चलाया जाता है, तो मुझे लगता है कि आप 'ओएस आयात कर सकते हैं' और 'os.chdir' जैसे कुछ का उपयोग कर सकते हैं। एक स्क्रिप्ट में, 'os.chdir (os.path.dirname (__ फ़ाइल __))' आदेश को एक स्ट्रिंग वापस करनी चाहिए जो हार्डवॉर्ड "पथ-टू-माय-फ़ोल्डर" के रूप में मान्य होगी, जब तक कि मुझे कुछ याद नहीं आया। .. –

+0

हाय @ एडी स्मिथ, वास्तव में "पथ-से-मेरा-फ़ोल्डर" बस "।" जो निष्क्रिय गतिशील है! मैं आपके सुझाव के साथ और अधिक प्रयास करूंगा और यदि मैं प्रबंधन करता हूं, तो मैं वापस रिपोर्ट करूंगा। धन्यवाद – physiker

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