2016-05-25 6 views
17

Il mio codice sta salvando con successo le immagini su file, ma sta ritagliando dettagli importanti dal lato destro. Answers esistono per risolvere questo problema quando si presenta per plt.show, ma è il comando savefig che produce in modo non corretto il grafico in questo esempio. Come si puo aggiustare?Plt.show mostra il grafico completo ma savefig sta ritagliando l'immagine

Il campione rilevante del mio codice:

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 

E le immagini (parte superiore è plt.show e in basso è il file prodotto da savefig:

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


+0

Si può fare un semplice esempio che gli altri possano testare, preferibilmente senza dover scaricare dati aggiuntivi e pacchetti? – Neapolitan

+0

@ napoletano. Questo è un po 'oltre le mie capacità. La risposta fornita di seguito suggerisce che esiste una soluzione generica per questo problema, indipendente dai dati. –

+0

@Neopolitan Non so come sia sorto il problema, quindi non sono sicuro di come produrre dati più semplici che potrebbero replicarlo. –

risposta

26

Puoi provare

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

Oppure si può definire dimensioni figura come

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

Grazie per la risposta, lo implementerò domani e ti faccio sapere come va! –

+0

Ho implementato la prima risposta e ha funzionato! Grazie! –