2016-05-25 8 views
17

Mój kod pomyślnie zapisuje obrazy w pliku, ale przycina ważne informacje z prawej strony. Answers istnieje dla naprawienia tego problemu, gdy pojawia się dla plt.show, ale jest to polecenie savefig, które niepoprawnie tworzy wykres w tym przykładzie. Jak to może zostać naprawione?Widok ekranu pokazuje pełny wykres, ale funkcja savefig przycina obraz

Odpowiednia próbka mojego kodu:

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 

a obrazy (top jest plt.show a dno jest plik produkowane z savefig:

Image when shown with plt.show Image when saved to file


+0

można zrobić prosty przykład, że inni mogą sprawdzić, najlepiej bez konieczności pobierania dodatkowych danych i pakietów? – Neapolitan

+0

@Napolitan. To trochę poza moim zestawem umiejętności. Przedstawiona poniżej odpowiedź sugeruje, że istnieje ogólne rozwiązanie tego problemu, niezależnie od danych. –

+0

@Neopolitan Nie wiem, jak powstał problem, więc nie jestem pewien, jak uzyskać prostsze dane, które mogłyby go powielić. –

Odpowiedz

26

może spróbować

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

Albo można określić rozmiar rysunek jak

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

Dziękuję za odpowiedź, zaimplementuję ją jutro i dam znać, jak idzie! –

+0

Zaimplementowałem pierwszą odpowiedź i zadziałało! Dziękuję Ci! –

Powiązane problemy