프로그래밍 언어/Python

코스피 지수 시각화하기

· 코딩마이데이

앞서 수집한 주요 경제지표 데이터에서 코스피지수를 시각화합니다. 가로축에는 날짜를, 세로축에는 코스피지수의 값을 둬서 시간의 흐름에 따른 코스피지수의 변화를 선 그래프로 만들 것입니다. 그래프의 상단에는 경제 지표 항목을 제목으로 두고, 가로와 세로 축에도 레이블을 표시합니다.

비주얼 스튜디오에서 새로운 파일을 생성하고 다음과 같이 코드를 입력한 뒤, 대화형 창을 실행합니다. 'output' 폴더에 코스피 지수를 선 그래프로 시각화한 결과들이 'step_3_1.png' 파일러 생성됩니다.

from pathlib import Path
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_2_2 import OUT_2_2

df_raw = pd.read_excel(OUT_2_2, sheet_name="코스피지수", dtype="string") # 08
df_raw["TIME"] = pd.to_datetime(df_raw["TIME"], format="%Y%m%d")  # 날짜 타입으로 변환 # 09
df_raw["DATA_VALUE"] = df_raw["DATA_VALUE"].astype(float)  # 부동소수점수 타입으로 변환 # 10

# 시각화 스타일 지정
sns.set_theme(context="poster", style="whitegrid", font="Malgun Gothic") # 13
sns.set_style({"grid.linestyle": ":", "grid.color": "#CCCCCC"}) # 14

fig, ax = plt.subplots(figsize=(16, 9), dpi=100)  # 이미지 크기 및 해상도 지정 # 16
sns.lineplot(data=df_raw, x="TIME", y="DATA_VALUE", ax=ax)  # 선 그래프 # 17
sns.despine(top=True, right=True)  # 축 제거 여부 설정 # 18

ax.set_title("코스피지수")  # 그래프 제목
ax.set_xlabel("날짜")  # 가로축 제목
ax.set_ylabel("지수")  # 세로축 제목 # 22
fig.set_layout_engine("tight")  # 이미지 여백 제거
fig.savefig(OUT_DIR / f"{Path(__file__).stem}.png")  # PNG 파일로 저장

 

08 엑셀 파일에서 [코스피지수] 시트를 불러옵니다.
09 'TIME' 열의 데이터 타입을 날짜로 변환합니다.
10 DATA_VALUE' 열의 데이터 타입을 부동소수점수로 변환합니다.
13 함수 set_theme()을 사용해 그래프의 스타일을 설정합니다. 포스터(poster) 크기에, 배경은 흰 바탕과 격자 무늬(whitegrid), 한글 텍스트 입력을 위해 폰트를 맑은 고딕(Malgun Gothic)으로 지정합니다.
14 함수 set_style()을 사용해 격자의 스타일을 점선으로, 색을 옅은 회색(#CCCCCC)으로 설정합니다.
16 함수 subplots()를 사용해서 그래프의 크기와 해상도를 지정합니다.
17 함수 lineplot()을 사용해 x축을 TIME, y축을 'DATA_TIME'으로 하는 선 그래프를 그립니다.

18 함수 despine()을 사용해 위쪽과 오른쪽 축을 제거합니다.
22 함수 set_layout_engine()을 사용해 여백을 좁게 조정합니다.