Plt.show पूरा ग्राफ दिखाता है लेकिन savefig इमेज को क्रॉप कर रहा है


87

मेरा कोड सफलतापूर्वक फाइल करने के लिए छवियों को सहेज रहा है, लेकिन यह दाहिने हाथ की ओर से महत्वपूर्ण विवरणों को क्रॉप कर रहा है। जब यह समस्या उत्पन्न होती है , तो इस समस्या को ठीक करने के लिए उत्तर मौजूद होते हैं plt.show, लेकिन यह वह savefigकमांड है जो गलत तरीके से इस उदाहरण में ग्राफ का उत्पादन कर रहा है। इसे कैसे सुधारा जा सकता है?

मेरे कोड का प्रासंगिक नमूना:

import glob
import os
for file in glob.glob("*.oax"):
    try:
        spc_file = open(file, 'r').read()
        newName = file[6:8] + '-' + file[4:6] + '-' + file[0:4] + ' ' + file[8:12] +  ' UTC (Observed) - No Sea Breeze Day'
        plt.title(newName, fontsize=12, loc='left')
        plt.savefig('X:/' + newName + '.png')        
        plt.show()
    except Exception:
        pass

और चित्र (ऊपर है plt.showऔर नीचे से निर्मित फ़ाइल है savefig:

छवि जब plt.show के साथ दिखाई जाए फ़ाइल में सहेजे जाने पर छवि



क्या आप एक सरल उदाहरण बना सकते हैं जिसे अन्य लोग परीक्षण कर सकते हैं, अधिमानतः अतिरिक्त डेटा और पैकेज डाउनलोड किए बिना?
नियपोलिटन

1
@Neapolitan। यह मेरे कौशल सेट से थोड़ा परे है। नीचे दिए गए जवाब से पता चलता है कि डेटा से स्वतंत्र इस समस्या का एक सामान्य समाधान है।
जॉस कर्क

@ मुझे पता नहीं है कि समस्या कैसे उत्पन्न हुई है, इसलिए मुझे यकीन नहीं है कि सरल डेटा का उत्पादन कैसे किया जा सकता है जो इसे दोहरा सकता है।
जॉस कर्क

जवाबों:


164

आप कोशिश कर सकते हैं

plt.savefig('X:/' + newName + '.png', bbox_inches='tight')

या आप आंकड़ा आकार को परिभाषित कर सकते हैं

fig = plt.figure(figsize=(9, 11))
...
plt.savefig(filename, bbox_inches = 'tight')

आपके उत्तर के लिए धन्यवाद, मैं इसे कल लागू करूंगा और आपको बताऊंगा कि यह कैसे चलता है!
जॉस किर्क

4
मैंने पहला उत्तर लागू किया और यह काम कर गया! धन्यवाद!
जॉस कर्क

2
यह डिफ़ॉल्ट विकल्प होना चाहिए, bbox_inches = 'tight'। मैंने इसे एक उच्च डीपीआई मूल्य के साथ संयोजन में उपयोग किया और इसने शानदार ढंग से काम किया।
दीपक वी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.