주요 경제지표 그래프 한 번에 시각화하기
액셀 파일의 각 워크시트를 반복문으로 불러온 뒤, matplotlib 패키지의 subplots() 함수를 사용해 2행 2열의 레이아웃에 네 개의 그래프를 배치하겠습니다.
비주얼 스튜디오 코드에 새로운 파일을 생성하고 파일명을 'step_3_2.py'로 수정합니다. 다음과 같이 코드를 입력한 뒤, 대화형 창에서 실행하면 'output' 폴더에 'step_3_2.png' 파일이 생성됩니다.
from pathlib import Path
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from matplotlib.axes import Axes
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_2_2 import OUT_2_2
# 시각화 스타일 지정
sns.set_theme(context="poster", style="whitegrid", font="Malgun Gothic")
sns.set_style({"grid.linestyle": ":", "grid.color": "#CCCCCC"})
fig, axes = plt.subplots(figsize=(16, 9), dpi=100, nrows=2, ncols=2) # 13
sheet_names = [["국고채", "회사채"], ["코스피지수", "원달러환율"]] # 14
for idx_row, row in enumerate(sheet_names): # 15
for idx_col, name in enumerate(row): # 16
df_raw = pd.read_excel(OUT_2_2, sheet_name=name, dtype="string")
df_raw["TIME"] = pd.to_datetime(df_raw["TIME"], format="%Y%m%d")
df_raw["DATA_VALUE"] = df_raw["DATA_VALUE"].astype(float)
df_tail = df_raw.tail(100) # 마지막 100개의 데이터만 사용
ax: Axes = axes[idx_row][idx_col] # 시각화에 사용할 Axes 객체 지정 # 21
sns.lineplot(data=df_tail, x="TIME", y="DATA_VALUE", ax=ax)
sns.despine(top=True, right=True, bottom=True, left=True)
ax.set_title(name) # 그래프 제목
ax.xaxis.set_visible(False) # 가로축 전체 숨김
ax.set_ylabel(None) # 세로축 제목 제거 # 28
ax.set_facecolor("#EEEEEE") # 배경색 지정
fig.set_layout_engine("tight") # 이미지 여백 제거
fig.savefig(OUT_DIR / f"{Path(__file__).stem}.png")

13 함수 subplots()를 사용해서 이미지의 크기와 해상도를 지정하고, 2행 2열 레이아웃에 네 개의 Axes 객체를 생성합니다. 변수 axes에는 Axes 객체가 중첩 리스트 타입으로 저장됩니다.
14 액셀 워크 시트의 이름을 2행 2열 레이아웃에 맞춰 리스트 형식으로 생성하고 변수 sheet_name에 저장합니다.
15~16 국고채와 회사채 그래프를 1행에, 코스피지수와 원달러 환율 그래프를 2열에 배치할 수 있도록 반복문을 중첩합니다.
21 변수 axes에 저장된 객체 Axes를 하나씩 다루기 위해 변수 ax에 저장합니다.
28 함수 set_facecolor()를 사용해 그래프의 배경을 회색(#EEEEEE)으로 채웁니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 금융감독원 API로 데이터 수집하기 (0) | 2026.05.05 |
|---|---|
| 정기예금 데이터 - 파이썬 패키지 준비하기 (0) | 2026.04.30 |
| 코스피 지수 시각화하기 (0) | 2026.04.24 |
| 다양한 경제지표 데이터를 한 번에 수집하기 (0) | 2026.04.21 |
| 다양한 경제지표 데이터 수집하기 - ECOS API 사용하기 (0) | 2026.04.18 |