Visualization

Python으로 데이터 시각화 하기! (4) - Column Chart (with Kakao 거래량)

JR_lib 2020. 7. 14. 12:22

안녕하세요 이번에는 파이썬으로 Column Chart를 그려볼거에요. Column Chart는 말 그대로 기둥처럼 생긴 차트입니다. 막대 그래프라고도 부르고요. 범주 데이터를 요약할 때 많이 사용합니다. 예를 들어 자신이 운영하는 매장의 일별 매출이 궁금하다! 하면 일별 매출량을 한 범주로 해서 Column Chart로 그리면 쉽고 빠르게 매출의 추이와 가장 높았던 혹은 가장 낮았던 매출이 어느 날이었는 지 바로 확인할 수 있죠. 이를 통해 데이터 애널리틱스들은 매출이 가장 낮았던 날에는 무슨 일이 있었는 지 원인 분석을 통해 솔루션을 제시하곤 하죠.

 

매출량 Column Chart

 

또 Column Chart는 두 가지 범주 데이터를 비교하는데에도 많이 사용이 되는대요. 매장에 방문한 고객의 성별을 비교해보는 차트를 만들어 볼 수 있습니다.

 

자 그러면 jupyter notebook으로 어떻게 하면 위와 같은 그래프를 그릴 수 있는 지 이제 알아볼게요. 

이번 포스팅에서 제가 그려볼 Column Chart는 Kakao 주식의 거래량 입니다. 주식 거래를 할 때 거래량을 보고 거래하는 사람이 있을 정도로 거래량은 꽤 유익한 정보라고 개인적으로는 생각합니다. 자세한 Jupyter notebook 전문은 아래를 참고해주세요.

 

 

Column Chart

Column Chart 그리기

Line Chart와 마찬가지로 필요한 패키를 불러와 줍니다.

In [1]:
import pandas as pd
import matplotlib.pyplot as plt

오늘 그려볼 Kakao 주식의 일봉 데이터를 가져와 줍니다.

In [2]:
KAKAO = pd.read_csv('파일경로/KAKAO(day).csv', index_col=0, engine='python')
KAKAO
Out[2]:
Open High Low Close Volume
Time
2017-07-12 98500 100000 97500 98500 621240
2017-07-13 99000 100500 98500 100000 318819
2017-07-14 100500 101500 99000 99000 197097
2017-07-17 99000 101000 99000 100500 211816
2017-07-18 101500 104500 101000 103500 701273
... ... ... ... ... ...
2020-07-06 298000 307500 297000 300500 1344537
2020-07-07 306500 318000 304000 310500 1552713
2020-07-08 312000 328000 305000 328000 1869053
2020-07-09 335000 355500 332000 355500 2463486
2020-07-13 359000 361000 345000 352000 1388098

735 rows × 5 columns

그래프의 x축 값을 이쁘게 보여주기 위해 Time index를 pandas 형식에 맞게 변형시켜줍니다.

In [3]:
KAKAO.index = pd.to_datetime(KAKAO.index)
In [4]:
# 차트 그리기
fig = plt.figure(figsize=(20, 12)) # 차트 생성 및 사이즈 설정
ax = fig.add_subplot(1,1,1) # subplot 생성

ax.bar(KAKAO.index, KAKAO['Volume'], label='KAKAO Volume', color='skyblue') # 인덱스가 x축, 거래량이 y축인 그래프를 그려줍니다.

ax.set_title('KAKAO Volume Chart', fontsize=20) # 타이틀 설정
ax.set_ylabel('Volume', fontsize=14) # x축 설정
ax.set_xlabel('Date', fontsize=14) # y축 설정

ax.legend(fontsize=12, loc='best') # 범례 설정 best로 해놓으면 가장 적절한 위치에 알아서 범례가 놓이게 됩니디

plt.show()

너무 날짜가 많아서 잘 안 보이죠. 그래서 이번에는 2020년 데이터만 그려볼게요.

In [5]:
KAKAO['Volume'][604]
Out[5]:
241013
In [6]:
# 차트 그리기
fig = plt.figure(figsize=(20, 12))
ax = fig.add_subplot(1,1,1)

ax.bar(KAKAO.index[604:], KAKAO['Volume'][604:], label='KAKAO Volume', color='gold',
       edgecolor='silver', # 테두리 설정
       alpha=0.5, # 투명도 조절
       width = 0.9) # bar 두께 조절

ax.set_title('KAKAO Volume Chart', fontsize=20) # 타이틀 설정
ax.set_ylabel('Volume', fontsize=14) # x축 설정
ax.set_xlabel('Date', fontsize=14) # y축 설정

ax.legend(fontsize=12, loc='best') # 범례 설정 best로 해놓으면 가장 적절한 위치에 알아서 범례가 놓이게 됩니디

plt.show()

이 그래프를 보면 코로나 이후 주가가 급락한 다음 얼마나 많은 사람들이 KAKAO 주식을 거래했는 지 파악할 수 있겠죠? 6월과 7월을 보면 확실히 1월과 2월에 비해 거래량이 급증했음이 보이네요.

이렇게 오늘은 Column Chart 그리는 방법을 KAKAO 주식의 거래량을 통해 알아 볼 수 있었습니다. 다음 포스팅에서는 Scatter Chart는 파이썬으로 어떻게 그리는 지에 대해서 다뤄보도록 하겠습니다.