728x90
Matplotlib 영역을 지정하여 여러 개 그래프 적용
subplot() 함수는 영역을 나눠 여러 개의 그래프를 시각화할 수 있다. 사용 방법은 다음과 같다.
plt.subplot(row, column, index)
tight_layout() 함수는 모서리와 서브플롯의 모서리 사이의 여백(padding)을 설정하는 함수다.
subplot()
x값
linspace : 몇등분할지 생각하면 된다. 기본값은 50이다.
# np.linspace(0, 10) : 0부터 10까지 50등분한 결과를 배열로 반환
x1 = np.linspace(0, 10)
x1
# np.linspace(0, 4) : 0부터 4까지 50등분한 결과를 배열로 반환
x2 = np.linspace(0, 4)
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()
💡 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()
한 좌표 평면 위에 여러 개 그래프
- 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()
'프로그래밍 언어 > 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 (0) | 2024.08.04 |