PROGRESS
10 / 10
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
여러 그래프 나란히 배치하기 : plt.subplot()
30 P
QUESTION 10 #380
하나의 화면에 선 그래프와 막대 그래프를 나란히 배치하는 프로그램입니다. 빈칸을 채우세요.
main.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [10, 20, 15, 25, 30]
y2 = [5, 15, 10, 20, 18]
# 1행 2열 배치의 첫 번째(왼쪽) 그래프
plt.(1, 2, 1)
plt.plot(x, y1, marker='o')
plt.title('Line Graph')
# 1행 2열 배치의 두 번째(오른쪽) 그래프
plt.(1, 2, 2)
plt.bar(x, y2)
plt.title('Bar Graph')
plt.tight_layout()
plt.show()
print("그래프 A 합계:", sum(y1))
print("그래프 B 합계:", sum(y2))
HINT
힌트: 하나의 화면에 여러 그래프를 배치할 때는 "하위 그래프"라는 뜻의 subplot() 함수를 사용합니다.
실행 결과 예시
그래프 A 합계: 100 그래프 B 합계: 68
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
subplot()으로 여러 그래프 배치하기
plt.subplot()은 하나의 화면(Figure)에 여러 그래프를 격자 형태로 배치하는 함수입니다.
기본 문법
plt.subplot(행 수, 열 수, 그래프 번호)
subplot(1, 2, 1)의 의미
plt.subplot(1, 2, 1) plt.subplot(1, 2, 2)
1행 2열 중 1번째 1행 2열 중 2번째
┌──────────┬──────────┐
│ (1,2,1) │ (1,2,2) │
│ 선 그래프 │ 막대 그래프│
│ │ │
└──────────┴──────────┘
다양한 배치 예시
subplot(1,2,n): 가로 배치 subplot(2,1,n): 세로 배치
┌──────┬──────┐ ┌────────────┐
│ 1 │ 2 │ │ 1 │
└──────┴──────┘ ├────────────┤
│ 2 │
└────────────┘
subplot(2,2,n): 2x2 배치
┌──────┬──────┐
│ 1 │ 2 │
├──────┼──────┤
│ 3 │ 4 │
└──────┴──────┘
번호 순서
번호는 왼쪽 위부터 오른쪽으로, 그 다음 줄로 이동합니다:
subplot(2, 3, n)의 번호 순서:
┌───┬───┬───┐
│ 1 │ 2 │ 3 │
├───┼───┼───┤
│ 4 │ 5 │ 6 │
└───┴───┴───┘
tight_layout()의 역할
plt.tight_layout()이 없으면 제목이나 라벨이 겹칠 수 있습니다:
# ❌ 겹침 발생 가능
plt.subplot(1,2,1)
plt.plot(x, y1)
plt.title('Graph A')
plt.subplot(1,2,2)
plt.bar(x, y2)
plt.title('Graph B')
plt.show()
# ✅ 자동 간격 조정
plt.tight_layout() # ← show() 전에 호출
plt.show()
코드 작성 순서
# 1. 첫 번째 위치 선택
plt.subplot(1, 2, 1)
# 2. 첫 번째 그래프 그리기
plt.plot(x, y1)
plt.title('Graph A')
# 3. 두 번째 위치 선택
plt.subplot(1, 2, 2)
# 4. 두 번째 그래프 그리기
plt.bar(x, y2)
plt.title('Graph B')
# 5. 레이아웃 정리 후 표시
plt.tight_layout()
plt.show()
💡 핵심:
subplot(행, 열, 번호)로 위치를 선택한 뒤 그래프를 그리는 순서를 반복합니다.