[Matplotlib] Matplotlib savefig 기능 정리

2022. 8. 21. 17:55·프로그래밍 Programming/파이썬 Python

 

Matplotlib은 figure를 도출하기 위해 중요한 라이브러리이다.

이 figure를 파일로 저장하기 위해서는 savefig라는 함수를 쓰는데 이 함수에서 설정할 수 있는 것들에 대해 이야기하려고 한다.

 


1. savefig의 argument

savefig(fname, *, dpi='figure', format=None, metadata=None,
        bbox_inches=None, pad_inches=0.1,
        facecolor='auto', edgecolor='auto',
        backend=None, **kwargs
       )

 

위의 savefig argument에서 fname은 저장할 파일이름이다.

여기에서 확장자를 지정하지 않으면 default로 png 파일로 저장한다.

format에서도 확장자를 지정할 수 있다.

 

dpi는 이미지의 resolution인데, (dots per inch)라는 뜻이다. 일반적으로 인쇄물에 넣는 png의 해상도는 아주 높아야할 것이다. 최소 300에서 높게는 600-800까지.

하지만 인쇄물에 쓸 거라면 pdf, eps와 같은 벡터 이미지 저장을 권장한다.

 

 

2. bbox_inches & pad_inches

 

bbox_inches는 figure가 저장되는 bounding box를 의미한다. 기본적으로는 None으로 되어있어서 figure 그대로를 저장하게 되고, 'tight'라고 설정하면 figure 안에서 제일 작게 만들 수 있는 영역만 지정하게 된다. 즉, figure 주변의 여백을 모두 제거한다.

 

예를 들어 내가 figsize를 500x500 pixels로 지정했는데, axes fontsize를 다르게 한 경우를 보자.

 

 

위의 두 사진은 테두리 포함 크기가 동일하다. (구별하기 쉽도록 테두리는 tistory의 기능으로 추가한 것이다.)

그런데 axes의 font 크기가 달라서 두 그림의 여백이 다르게 된다. 즉, matplotlib 자체 내에서 figsize를 유지하면서 흰 여백을 그림에 맞게 추가한다는 뜻이다.

 

내가 'tight'로 설정하면 이런 여백이 날아가게 된다.

 

그리고 pad_inches에서는 bbox_inches에서 'tight'라고 지정할 때 추가적으로 붙여주는 padding의 크기를 의미한다. default로 0.1inch로 되어있다.

 

따라서 어떤 이미지를 저장할 때 아래와 같이 설정한다고 하자.

plt.savefig(fname='image.png', bbox_inches='tight', pad_inches=0)

 

 

그러면 내가 저장하고 싶은 figure에서 축과 그림을 제외한 나머지는 날아간 채로 저장하게 된다.

그런데 이럴 경우에는 내가 지정해놓은 figsize와 다른 figure 크기가 될 수 있다고 stackoverflow에 나와있다.따라서 본인이 원하는 figure size를 유지할 때는 bbox_inches를 'tight'로 두는 것을 권장하지 않는다.

 

 

3. face_colors & edge_colors

 

이 기능은 3.6부터 error를 발생시키는 argument이므로 설명하지 않는다.

저작자표시 비영리 변경금지

'프로그래밍 Programming > 파이썬 Python' 카테고리의 다른 글

[에러기록] matplotlib에서 figure만 그려지고 plot이 없는 경우  (0) 2022.12.27
[에러기록] Visual studio code에서 아나콘다 가상환경이 안 돌아갈 때  (0) 2022.11.01
[Python] matplotlib default 설정  (0) 2022.07.16
[PyTorch] gradient descent로 변수를 직접 update할 때 주의할 점  (0) 2022.07.14
[PyTorch] DataLoader shuffle 기능 사용 시, RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'  (0) 2022.07.14
'프로그래밍 Programming/파이썬 Python' 카테고리의 다른 글
  • [에러기록] matplotlib에서 figure만 그려지고 plot이 없는 경우
  • [에러기록] Visual studio code에서 아나콘다 가상환경이 안 돌아갈 때
  • [Python] matplotlib default 설정
  • [PyTorch] gradient descent로 변수를 직접 update할 때 주의할 점
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (458)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Numerical Analysis
    IEEE
    MATLAB
    옵시디언
    Zotero
    obsidian
    논문작성법
    텝스공부
    Statics
    Julia
    에러기록
    논문작성
    Dear abby
    텝스
    생산성
    teps
    pytorch
    고체역학
    딥러닝
    인공지능
    ChatGPT
    우분투
    Python
    수식삽입
    WOX
    JAX
    수치해석
    matplotlib
    LaTeX
    Linear algebra
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[Matplotlib] Matplotlib savefig 기능 정리
상단으로

티스토리툴바