[Python] matplotlib default 설정

2022. 7. 16. 15:53·프로그래밍 Programming/파이썬 Python

 

딥러닝 후에 visualization할 때 일일이 세팅을 정해줘야해서 번거롭다.

그래서 default setting을 위한 코드들을 미리 작성하고 필요할 때마다 복사해서 사용하고자 한다.

 

좋은 코드를 발견하면 계속 추가할 예정이다.

 

1. Grid setting

import matplotlib as mpl

# grid setting
mpl.rcParams['grid.color'] = '#808080'
mpl.rcParams['grid.linestyle'] = '--'
mpl.rcParams['grid.linewidth'] = 0.5
mpl.rcParams.update({"axes.grid" : True})

 

위의 세 줄은 색상, line style, linewidth에 대한 설정이다.

색상은 

v.2.0에 적힌 'C0' 등을 쓰면 default로 지정된 '#1f77b4'를 쓸 수 있다.

그리고 HEX 색상 코드도 색을 지정할 때 사용할 수 있다.

위에서 나는 회색 색상을 쓰기 위해 회색에 해당하는 '#808080'을 사용했다.

 

 

2. 그래프 Font 설정

# mpl.rcParams['font.size'] = 16 # xlabel, ylabel 등에 쓰이는 font
mpl.rcParams['legend.fontsize'] = 16 # legend font size
mpl.rcParams['figure.titlesize'] = 18
mpl.rcParams['axes.titlesize'] = 18  # title font size
mpl.rcParams['lines.linewidth'] = 2.0
mpl.rcParams['axes.labelsize'] = 18
mpl.rcParams['xtick.labelsize'] = 14
mpl.rcParams['ytick.labelsize'] = 14

font.size의 경우에는 범용적으로 폰트 사이즈를 바꾸는 데 쓰이는데

다소 어떤 부분을 바꾸고 싶은지 특정하기 애매해서 주석처리했다.

 

 

3. 그래프에 LaTeX를 사용하고 싶을 때

plt.rcParams['text.usetex'] = True

 

그리고 실제로 LaTeX를 쓰고 싶다면 string에

plot(x,y, label=r'$\delta$)

 

다음과 같이 r + '$(수식)$'을 조합하여 써야한다.

 

 

4. 그래프 색깔 순서 정하고 싶을 때

 

from cycler import cycler
mpl.rcParams['axes.prop_cycle'] = cycler(color='brgcmyk')

 

이렇게 지정하면 한 figure 안에서 그래프가 생성될 때마다 brgcmyk 순서로 생성

 

5. 그래프 크기 정하기

 

# figure size
plt.rcParams["figure.figsize"] = (6.4, 4.8)

# cm단위로 쓰고 싶을 때
def cm_to_inch(value):
    return value/2.54
plt.figure(figsize=(cm_to_inch(15),cm_to_inch(10)))

 

그래프 사이즈가 inch로 되어있어서 불편한 점이 많다.

 

https://sosomemo.tistory.com/62

 

위 글에서 픽셀 단위로 그래프 크기를 조정할 수 있는 방법에 대해 설명하므로 참고하면 좋을 것 같다.

 

 

6. 그래프 margin 제거

 

# tight axis
plt.rcParams['axes.xmargin'] = 0

matplotilb은 그림을 저장할 때 보면 margin을 추가한다. 그래서 그래프를 LaTeX로 그릴 때 그래프가 마진 때문에 상대적으로 작아보이는 효과가 있었다.

그래서 마진을 0으로 두었다.

 

 

7. 그래프 폰트 지정

 

plt.rcParams['font.family'] = 'serif'

그래프 기본 폰트도 지정할 수 있다. 자세한 내용은 동일한 블로그의 다음 글을 참고.


default 속성에 대한 더 자세한 내용을 알기 위해서는 다음 링크를 참고하도록 하자.

https://matplotlib.org/stable/users/prev_whats_new/dflt_style_changes.html#fonts

 

Changes to the default style — Matplotlib 3.5.2 documentation

The default font has changed from "Bitstream Vera Sans" to "DejaVu Sans". DejaVu Sans has additional international and math characters, but otherwise has the same appearance as Bitstream Vera Sans. Latin, Greek, Cyrillic, Armenian, Georgian, Hebrew, and Ar

matplotlib.org

 

 

저작자표시 비영리 변경금지 (새창열림)

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

[에러기록] Visual studio code에서 아나콘다 가상환경이 안 돌아갈 때  (0) 2022.11.01
[Matplotlib] Matplotlib savefig 기능 정리  (0) 2022.08.21
[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
[PyTorch] GPU에서 텐서 사용하기  (0) 2022.07.12
'프로그래밍 Programming/파이썬 Python' 카테고리의 다른 글
  • [에러기록] Visual studio code에서 아나콘다 가상환경이 안 돌아갈 때
  • [Matplotlib] Matplotlib savefig 기능 정리
  • [PyTorch] gradient descent로 변수를 직접 update할 때 주의할 점
  • [PyTorch] DataLoader shuffle 기능 사용 시, RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468) N
      • 공지 (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 (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1) N
      • 유학 생활 Daily (8)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[Python] matplotlib default 설정
상단으로

티스토리툴바