안녕하세요~ 오늘은 저번에 이어서 파이썬으로 데이터 시각화 하기! 그 첫 번째, 라인 차트 그리기를 해볼겁니다.
라인 차트는 흔이 볼 수 있는 꺾은선 그래프를 떠올리시면 되는데요. 수많은 분야에서 가장 일반적으로 쓰이는 차트입니다. x축과 y축 이 두 가지 축 중에서 일반적으로 x축 값을 기준으로 정렬해서 그리는 차트입니다.
이번 포스팅에서 제가 그려볼 라인 차트는 제 블로그에서 포스팅한 CLOU와 SKYY 시계열 가격 차트인데요. 우선 차트를 그리기 전에 데이터 시각화를 하기 위해 파이썬에서 가장 많이 사용하는 라이브러리 패키지, matplotlib을 설치하는 방법을 살짝 짚고 넘어가도록 할게요.
저번 포스팅에서 파이썬 설치를 저와 같이 해보셨다면 아마 anaconda를 설치하셨을 거에요. 그렇다면 사실 matplotlib을 따로 설치할 필요는 없습니다. anaconda를 설치할 때 같이 자동으로 설치가 되거든요. 하지만 혹시 아직 matplotlib을 설치하지 못하신 분들이 있을 수 있으니 간단하게 파이썬에서 라이브러리 패키지를 설치하는 방법을 짚고 넘어갈게요.
우선 anaconda prompt를 켜줍니다. 패키지를 설치할 때는 관리자의 권한을 요구하는 경우가 많으니 관리자의 권한으로 실행을 꼭! 해주세요. 혹여나 anaconda를 설치하지 않고 파이썬만 설치하셨다면 파이썬 명령프롬프트를 켜주면 됩니다.
이렇게 명령프롬프트를 켜주고 conda install matplotlib을 쳐주면 됩니다. 파이썬 명령프롬프트의 경우 pip install matplotlib을 쳐주시면 됩니다.
저는 이미 설치가 되어 있다고 나오네요. matplotlib 외에도 numpy와 pandas 패키지 정도는 앞으로도 많이 쓰일 수 있으니 같이 설치해주시면 좋을 것 같습니다.
이렇게 패키지를 설치하고 jupyter notebook을 설치해서 자신이 원하는 폴더에 new python3를 만들어 줍니다.
저는 오늘 CLOU와 SKYY 의 가격 데이터를 라인 차트로 그려볼건데요. 최종적으로는 아래와 같은 모양의 차트를 만들 수 있게 됩니다.
이에 대한 자세한 jupyter notebook에서 사용한 코드에 대해서 알아볼게요.
Line Chart 그리기¶
필요한 패키지, 아까 설치한 matplotlib과 pandas를 불러와 줍니다.
# 필요한 패키지 불러오기
import pandas as pd
import matplotlib.pyplot as plt
그리고 이제 데이터를 불러와야겠죠? 저는 csv 파일로 저장을 해놓아서 pandas 패키지의 read_csv를 사용했습니다.
# CLOU 데이터 불러오기
CLOU = pd.read_csv('파일경로/CLOU(day).csv', index_col=0, engine='python')
CLOU
# SKYY 데이터 불러오기
SKYY = pd.read_csv('파일경로/SKYY(day).csv', index_col=0, engine='python')
SKYY
그래프의 x축 값을 이쁘게 보여주기 위해 Time index를 pandas 형식에 맞게 변형시켜줍니다.
# 인덱스를 pandas의 datetime 형태로 바꿔주기
CLOU.index = pd.to_datetime(CLOU.index)
SKYY.index = pd.to_datetime(SKYY.index)
이제 본격적으로 차트를 그려야겠죠. 차트를 그리기 위해서는 우선 사이즈를 설정해 차트를 만들어줍니다. 그런 다음 CLOU와 SKYY의 데이터를 불러와 줍니다. 여기서 이제 label 값을 설정해야 범례가 만들어지기 때문에 label은 꼭 설정해주세요.
# 차트 그리기
fig = plt.figure(figsize=(20, 12)) # 차트 생성 및 사이즈 설정
ax = fig.add_subplot(1,1,1) # subplot 생성
ax.plot(CLOU['Close'], label='CLOU', color='b') # CLOU 종가 불러오기
ax.plot(SKYY['Close'].iloc[1689:], label='SKYY', color='r') # SKYY 종가 불러오기
ax.set_title('CLOU & SKYY Close price', fontsize=20) # 타이틀 설정
ax.set_ylabel('price', fontsize=14) # x축 설정
ax.set_xlabel('Date', fontsize=14) # y축 설정
ax.legend(fontsize=12, loc='best') # 범례 설정 best로 해놓으면 가장 적절한 위치에 알아서 범례가 놓이게 됩니디
plt.show()
이런 식으로 간단하게 matplotlib을 이용해서 종가 차트를 그릴 수 있습니다. 여기서 이제 색상과 x축 글자 모양 등등을 설정해주면 자신만의 라인 차트를 그릴 수 있겠죠?
'Visualization' 카테고리의 다른 글
Python으로 데이터 시각화 하기! (4) - Column Chart (with Kakao 거래량) (0) | 2020.07.14 |
---|---|
Python으로 데이터 시각화 하기! (2) - 파이썬 설치하기 (0) | 2020.07.10 |
Python으로 데이터 시각화 하기! (1) - 데이터 시각화는 왜 필요한가? (0) | 2020.07.10 |