[시계열 시각화] seaborn으로 시계열데이터 그려보기
계절성을 비롯한 시계열 데이터 특성을 눈으로 확인하기 위해서는 시각화가 중요하다고 생각합니다.
matplotlib으로 그릴수도 있지만 좀 더 화려한 시각화를 하기 위해..! seaborn을 써서 기본적인 시계열 데이터 시각화를 정리해보려 합니다.
시각화 데이터는 월별 데이터입니다.
언뜻 보기엔 패턴이 있는거 같기도 하고 없는 거 같기도 하네요
계절적 특성이 있는 확인하기 위해 년도, 월 컬럼을 생성해 주겠습니다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 계절성 확인을 위해 년도, 월 컬럼 생성
df['year'] = df.index.year
df['month'] = df.index.month
1. 박스 그래프 (boxplot)
(1) 연도별 데이터
연도별 추세를 확인할 수 있습니다. 2013년도 까지 증가했다가 증가감소를 반복하고 있는 모습입니다.
# 연도별 데이터
plt.figure(figsize=(10,5))
sns.barplot(data=df, x='year', y = 'Total')
(2) 연도별 흐름에 따른 월별 데이터
위의 연도별 그래프에 각 연도마다 월별 그래프를 추가하였습니다. seaborn의 경우 hue 라는 파라미터를 사용하여
2007년, 2008년.. 연도흐름에 따라서 1월 2월..12월 각 월 정보를 표시할 수 있습니다.
plt.figure(figsize=(10,5))
sns.barplot(data=df, x='year', y = 'Total',hue='month')
(3) 월별 데이터
각 연도별 1월값의 평균, 2월값의 평균...을 시각화 하였습니다. 1년 기준으로 2월달에만 데이터의 값이 작아지는 모습을 볼 수 있습니다. 하나의 계절성이라고 볼 수 있을 것 같습니다.
plt.figure(figsize=(10,5))
sns.barplot(data=df, x='month', y = 'Total')
4. 월별 흐름에 따른 연 데이터
하나의 연도의 데이터가 1월,2월.. 12월 흐름에 따라 어떻게 움직이는 지 표현한 그래프입니다.
plt.figure(figsize=(10,5))
sns.barplot(data=df, x='month', y = 'Total',hue='year')
2. 라인 그래프(line plot)
(1) 연도별 데이터
연도별로 데이터를 시각화 함으로서 대략적인 추세를 알 수 있습니다.
추세를 보기엔 박스 그래프보다 라인 그래프가 훨씬 보기 쉽네요.
2013년까지 증가 추세가 있고 그 이후엔 증가감소를 반복하고 있는 것을 알 수 있네요.
# 전체적인 추세
plt.figure(figsize=(10,5))
sns.lineplot(data=df, x='year', y = 'Total')
(2) 연도 흐름에 따른 월 데이터
1월,2월 .. 12월의 연도별 흐름을 볼 수 있습니다.
각 월별로 비슷한 추세로 움직이지만 2월달이 특히 작은 값인 것을 알 수 있습니다.
# 연도별 월 데이터
plt.figure(figsize=(10,5))
sns.lineplot(data=df, x='year', y = 'Total',hue='month')
(3) 월별 흐름에 따른 연도 데이터
색깔이 흐린 연도 2007년~ 2012년 이 다른년도에 비해 값이 작았던 것을 볼 수 있습니다.
이 그래프를 통해 데이터가 확실히 2월달에 값이 작은 계절성을 가진다고 할 수 있겠네요.
# 월별 시각화
plt.figure(figsize=(10,5))
sns.lineplot(data=df, x='month', y = 'Total',hue='year')
지금까지 seaborn 을 통해 시각화를 진행해보았습니다!
더 유용한 시각화가 있다면 차차 포스팅을 통해 정리해보겠습니다. 감사합니다~