[matplotlib] x,y축 format 지정하는 방법

2023. 6. 8. 15:50·연구 Research/데이터과학 Data Science

matplotlib에서 log scale그래프를 그리다가

 

다음과 같이 y축 숫자표기가 너무 크다는 것을 발견하고 이를 수정하기 위한 코드를 작성하였다.

 

여러 방법을 찾아보긴 했는데 내가 느끼기에 가장 간단하고 범용성이 높은 방법은 다음과 같다.

 

1. axes 인스턴스 필요

 

대부분의 matplotlib 그림에서 고급 기능을 쓰기 위해서는 axes 인스턴스를 필요로 한다. 이 axes는 내가 그리고자 하는 figure에 할당된 class인데 그 내부에서 구체적으로 설정하는 매서드가 담겨있어서 이것에 접근해야한다.

 

plt.plot(num_history, train_mse_history)
plt.ylabel('MSE')
plt.xlabel('epoch')
plt.yscale('symlog')
ax = plt.gca() # 인스턴스 받는 코드

plt.gca()는 현재 내가 그리고자 하는 plot에 대한 axes instance이다.

 

또는 그림을 다음과 같이 그릴 때 axes 인스턴스를 얻을 수 있다.

fig, ax = plt.subplots()

 

2. format 지정

 

matplotlib.ticker에 formatter가 여러 개 있고 이중에서 다음 ticker.StrMethodFormatter를 가지고 온다.

 

from matplotlib import ticker
plt.plot(num_history, train_mse_history)
plt.ylabel('MSE')
plt.xlabel('epoch')
plt.yscale('symlog')
ax = plt.gca()
ax.yaxis.set_major_formatter(ticker.StrMethodFormatter("{x:.2f}"))
plt.show()

 

format은 .2e 등 다양하게 지정할 수 있다. ($10\times e\pm 3$ 정도의 스케일은 지수표기법으로 하는 편이 나을 것 같다.)

 

3. 추가적인 format들

 

아래 그림을 보면 formatter 여러 종류를 바로 파악할 수 있다.

 

 


참고자료

https://matplotlib.org/stable/gallery/ticks/tick-formatters.html

 

Tick formatters — Matplotlib 3.7.1 documentation

Note Click here to download the full example code Tick formatters Tick formatters define how the numeric value associated with a tick on an axis is formatted as a string. This example illustrates the usage and effect of the most common formatters. import m

matplotlib.org

 

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

'연구 Research > 데이터과학 Data Science' 카테고리의 다른 글

[알고리즘] KDTree로 가장 가까운 포인트 찾기  (0) 2024.12.28
[데이터과학] scipy interpolation 종류 정리  (0) 2023.08.25
[Matplotlib] 3D scatter plot 그리는 코드  (0) 2023.04.28
[데이터과학] Pandas에서 dataframe 생성 및 export  (0) 2023.04.27
[데이터과학] Unbalancing data 처리  (0) 2021.05.26
'연구 Research/데이터과학 Data Science' 카테고리의 다른 글
  • [알고리즘] KDTree로 가장 가까운 포인트 찾기
  • [데이터과학] scipy interpolation 종류 정리
  • [Matplotlib] 3D scatter plot 그리는 코드
  • [데이터과학] Pandas에서 dataframe 생성 및 export
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (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)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[matplotlib] x,y축 format 지정하는 방법
상단으로

티스토리툴바