[파이썬] matplotlib 날짜 데이터 다루기

많은 데이터 분석 및 시각화 작업에서 날짜 데이터는 중요한 역할을 합니다. Matplotlib는 파이썬에서 데이터를 시각화하는 데 매우 유용한 라이브러리입니다. 이번 포스트에서는 Matplotlib를 사용하여 날짜 데이터를 다루고 시각화하는 방법에 대해 알아보겠습니다.

1. 날짜 데이터 생성하기

Matplotlib는 날짜 데이터를 생성하기 위해 matplotlib.dates 모듈을 제공합니다. 이 모듈을 사용하여 다양한 형식의 날짜 데이터를 만들 수 있습니다. 예를 들어, 다음과 같이 날짜 범위를 생성할 수 있습니다.

import datetime as dt
import matplotlib.dates as mdates

start_date = dt.datetime(2021, 1, 1)
end_date = dt.datetime(2021, 12, 31)
dates = mdates.drange(start_date, end_date, dt.timedelta(days=1))

在코드에서는 datetime 라이브러리의 datetime 객체를 사용하여 시작 날짜와 종료 날짜를 정의하고, mdates.drange 함수를 사용하여 날짜 범위를 생성했습니다. datetime.timedelta(days=1)은 날짜 사이의 간격을 1일로 설정합니다.

2. 날짜 데이터 시각화하기

Matplotlib를 사용하여 날짜 데이터를 시각화하려면 plot 함수를 사용할 수 있습니다. 다음 예제에서는 생성한 날짜 범위와 해당 날짜에 대한 가상의 데이터를 그래프로 나타냅니다.

import matplotlib.pyplot as plt

data = [3, 6, 2, 7, 9, 4, 1, 5, 8, 3, 5, 2]
plt.plot(dates, data)
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Data over Time')
plt.show()

이 코드에서 plot 함수는 날짜 범위에 해당하는 데이터를 그래프로 나타냅니다. xlabel, ylabel, title 함수를 사용하여 축의 레이블과 그래프 제목을 설정합니다. 마지막으로 show 함수를 호출하여 그래프를 표시합니다.

3. 날짜 형식 지정하기

Matplotlib에서 날짜를 표시할 때 사용되는 형식을 지정할 수도 있습니다. 예를 들어, 날짜를 “년-월-일” 형식으로 표시하려면 다음과 같이 설정할 수 있습니다.

import matplotlib.pyplot as plt

plt.plot(dates, data)
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Data over Time')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gcf().autofmt_xdate()
plt.show()

set_major_formatter 함수를 사용하여 날짜 형식 지정 객체 mdates.DateFormatter를 설정합니다. %Y-%m-%d는 “년-월-일” 형식을 의미합니다. autofmt_xdate 함수는 x축의 날짜를 자동으로 회전하여 더 읽기 쉽게 만듭니다.

4. 다양한 형식의 날짜 데이터 다루기

Matplotlib는 다양한 형식의 날짜 데이터를 다룰 수 있습니다. 예를 들어, 주별 데이터, 월별 데이터, 분기별 데이터 등을 시각화할 수 있습니다. 이러한 경우에는 mdates.DayLocator, mdates.WeekdayLocator, mdates.MonthLocator, mdates.QuarterLocator 등의 객체를 사용하여 주어진 범위에 맞게 데이터를 선택할 수 있습니다. 이후에는 set_major_locator 함수를 사용하여 날짜 내에서 선택된 데이터를 표시할 수 있습니다.

Matplotlib를 사용하여 날짜 데이터를 다루고 시각화하는 방법에 대해 알아보았습니다. 이를 통해 데이터 분석 및 시각화 작업에서 날짜 데이터를 효율적이고 직관적으로 다룰 수 있을 것입니다. Matplotlib는 다양한 옵션과 기능을 제공하기 때문에, 필요에 따라 자세한 문서나 예제를 참고하는 것이 좋습니다.

참고 자료: Matplotlib 온라인 문서