Plt.show는 전체 그래프를 표시하지만 savefig가 이미지를 자릅니다.


82

내 코드는 이미지를 파일에 성공적으로 저장하고 있지만 오른쪽에서 중요한 세부 정보를 잘라냅니다. 대해이 문제가 발생할 때이 문제를 해결하기위한 답변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로 표시된 이미지 파일에 저장할 때 이미지



가급적 추가 데이터와 패키지를 다운로드하지 않고도 다른 사람들이 테스트 할 수있는 간단한 예제를 만들 수 있습니까?
Neapolitan

1
@나폴리. 그것은 내 기술력을 약간 넘어선 것입니다. 아래에 제공된 답변은 데이터에 관계없이이 문제에 대한 일반적인 솔루션이 있음을 나타냅니다.
Joss Kirk

@Neopolitan 문제가 어떻게 발생했는지 모르기 때문에 복제 할 수있는 더 간단한 데이터를 생성하는 방법을 모르겠습니다.
Joss Kirk

답변:


156

당신은 시도 할 수 있습니다

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

또는 다음과 같이 그림 크기를 정의 할 수 있습니다.

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

답변 해 주셔서 감사합니다. 내일 구현하여 어떻게 진행되는지 알려 드리겠습니다!
Joss Kirk

3
나는 첫 번째 답변을 구현했고 작동했습니다! 감사합니다!
Joss Kirk

1
이것은 기본 옵션 인 bbox_inches = 'tight'여야합니다. 높은 dpi 값과 함께 사용했고 훌륭하게 작동했습니다.
Deepak V
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.