[Matplotlib] 영역을 지정하여 여러 개 그래프 적용

2024. 8. 5. 00:33· 프로그래밍 언어/Python
목차
  1. Matplotlib 영역을 지정하여 여러 개 그래프 적용
  2. subplot()
  3. 한 좌표 평면 위에 여러 개 그래프
728x90

Python

 

Matplotlib 영역을 지정하여 여러 개 그래프 적용

subplot() 함수는 영역을 나눠 여러 개의 그래프를 시각화할 수 있다. 사용 방법은 다음과 같다.


      
plt.subplot(row, column, index)

 

subplot 사용 예시

 

tight_layout() 함수는 모서리와 서브플롯의 모서리 사이의 여백(padding)을 설정하는 함수다.

 

subplot()

x값

linspace : 몇등분할지 생각하면 된다. 기본값은 50이다.


      
# np.linspace(0, 10) : 0부터 10까지 50등분한 결과를 배열로 반환
x1 = np.linspace(0, 10)
x1

 

 

x1 출력 모습

 


      
# np.linspace(0, 4) : 0부터 4까지 50등분한 결과를 배열로 반환
x2 = np.linspace(0, 4)
x2

 

x2 출력 모습

 

 

y값

y값은 역동적인 그래프를 위한 np.cosine 함수를 이용했다. np.pi 함수로 원주율(파이) 값을 사용했다.


      
y1 = np.cos(2 * np.pi * x1)
y2 = np.cos(2 * np.pi * x2)

 

supblot 사용


      
# nrows=2, ncols=1, index=1
# 두 개의 행과 하나의 열로 이루어진 그래프에서 첫번째 인덱스
plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'o-')
plt.title('1st Graph')
# subplot
# nrows=2, ncols=1, index=2
# 두 개의 행과 하나의 열로 이루어진 그래프에서 두번째 인덱스
plt.subplot(2, 1, 2)
plt.plot(x2, y2, '.-')
plt.title('2nd Graph')
# tight_layout() 함수는 모서리와 서브플롯의 모서리 사이의 여백(padding)을 설정
plt.tight_layout()
plt.show()

 

subplot 사용 예시

 

💡 tight_layout() 함수 지운 결과 비교

      
# tight_layout() 함수는 모서리와 서브플롯의 모서리 사이의 여백(padding)을 설정
y1 = np.cos(2 * np.pi * x1)
y2 = np.cos(2 * np.pi * x2)
plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'o-')
plt.title('1st Graph')
plt.subplot(2, 1, 2)
plt.plot(x2, y2, '.-')
plt.title('2nd Graph')
plt.show()

 

tight_layout()을 사용하지 않으면 그래프끼리 겹친다.

 

 

한 좌표 평면 위에 여러 개 그래프

  • plt.subplots() 함수는 여러 개 그래프를 한 번에 그리는 것도 가능하다.
  • plt.subplots() 함수의 디폴트 파라미터는 1이며 즉 plt.subplots(nrows=1, ncols=1)를 의미한다.
  • plt.subplots() 함수는 figure와 axes 값을 반환한다.

 

figure

전체 subplot을 의미한다. 서브플롯 안에 몇 개의 그래프가 있던지 상관없이 그걸 담는 전체 사이즈를 의미한다.

 

axe

전체 중 낱낱개를 의미한다. ex) 서브플롯 안에 2개(a1,a2)의 그래프가 있다면 a1, a2를 일컫는다.

 

twinx()

.twinx() 함수는 ax1과 축을 공유하는 새로운 Axes 객체를 생성한다.


      
import matplotlib.pyplot as plt
import numpy as np
# x는 X축에 표시될 연도이고, y1, y2는 y 값
x = ['2022', '2023', '2024']
y1 = np.array([1, 7, 14])
y2 = np.array([1, 3, 9])
# plt.subplots(nrows=1, ncols=1) = plt.subplots()
fig, ax1 = plt.subplots()
# -s(solid line style + square marker), alpha(투명도)
ax1.plot(x, y1, '-s', color='green', markersize=7, linewidth=5, alpha=0.7)
# .twinx() 함수는 ax1과 축을 공유하는 새로운 Axes 객체 생성
ax2 = ax1.twinx()
ax2.bar(x, y2, color='deeppink', alpha=0.7, width=0.7)
plt.show()

 

 

twinx() 함수 적용

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

[Seaborn] 선형 회귀선, 히스토그램, 커널 밀도 그래프, 산점도 그래프, 빈도 그래프, 조인트 그래프, 관계 그래프  (0) 2024.08.05
[Seaborn] 기본 개념 - 데이터 불러오기  (0) 2024.08.05
[Matplotlib] 기본 개념(범례, 축 범위, 산점도)  (0) 2024.08.04
[pandas] split, grouped  (0) 2024.08.04
[pandas] groupby  (1) 2024.08.04
  1. Matplotlib 영역을 지정하여 여러 개 그래프 적용
  2. subplot()
  3. 한 좌표 평면 위에 여러 개 그래프
'프로그래밍 언어/Python' 카테고리의 다른 글
  • [Seaborn] 선형 회귀선, 히스토그램, 커널 밀도 그래프, 산점도 그래프, 빈도 그래프, 조인트 그래프, 관계 그래프
  • [Seaborn] 기본 개념 - 데이터 불러오기
  • [Matplotlib] 기본 개념(범례, 축 범위, 산점도)
  • [pandas] split, grouped
평양냉면7
평양냉면7
하다보니 재미있는 개발에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com
평양냉면7
하다보니 재미있는 개발
평양냉면7
전체
오늘
어제
  • 분류 전체보기 (218)
    • Upstage AI Lab 4기 (16)
      • 컴퓨터 공학 (11)
      • 수학 (0)
    • EDA (5)
    • RAG (8)
    • ML (9)
    • MLOps (10)
    • Deep Learning (8)
    • 프로그래밍 언어 (30)
      • Python (17)
      • JAVA (10)
      • Kotlin(코틀린) (3)
    • Spring (66)
      • Spring 기초 지식 (3)
      • Spring Boot (37)
      • Spring Data JPA (10)
      • Spring 테스트코드 (9)
      • Spring 트러블 슈팅 (7)
    • AWS (22)
    • 테라폼(Terraform) (7)
    • Docker (7)
    • Tools (6)
      • nGrinder (4)
      • Kafka (카프카) (3)
    • ETC (5)

나의 링크

냉면의 링크드인 👤 냉면의 깃허브 🪶 냉면의 노오션 🌊

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.2
평양냉면7
[Matplotlib] 영역을 지정하여 여러 개 그래프 적용
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.