Plt.show tam grafiği gösteriyor ancak savefig resmi kırpıyor


87

Kodum görüntüleri başarıyla dosyaya kaydediyor, ancak önemli ayrıntıları sağ taraftan kırpıyor. Ortaya çıktığında bu sorunu çözmek için cevaplar vardır plt.show, ancak savefigbu örnekte grafiği yanlış üreten komuttur. Bu nasıl düzeltilebilir?

Kodumun ilgili örneği:

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

Ve görüntüler (üst plt.showve alt şunlardan üretilen dosyadır savefig:

Plt.show ile gösterilen resim Dosyaya kaydedildiğinde görüntü



Başkalarının, tercihen fazladan veri ve paket indirmeye gerek kalmadan test edebileceği basit bir örnek verebilir misiniz?
Napoliten

1
@Neapolitan. Bu benim yeteneklerimin biraz ötesinde. Aşağıda verilen cevap, verilerden bağımsız olarak bu problem için genel bir çözüm olduğunu göstermektedir.
Joss Kirk

@Neopolitan Sorunun nasıl ortaya çıktığını bilmiyorum, bu yüzden onu çoğaltabilecek daha basit verilerin nasıl üretileceğinden emin değilim.
Joss Kirk

Yanıtlar:


164

Deneyebilirsin

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

Veya şekil boyutunu şöyle tanımlayabilirsiniz:

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

Cevabınız için teşekkür ederim, yarın uygulayacağım ve nasıl gittiğini size bildireceğim!
Joss Kirk

4
İlk cevabı uyguladım ve işe yaradı! Teşekkür ederim!
Joss Kirk

2
Bu, varsayılan seçenek, bbox_inches = 'tight' olmalıdır. Bunu yüksek bir dpi değeri ile birlikte kullandım ve harika bir şekilde çalıştı.
Deepak V
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.