Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 X축에 날짜와 시간을 표시하는 방법

Matplotlib에서 X축에 날짜와 시간을 표시하려면 matplotlib.dates 모듈의 DateFormatterDayLocator를 활용하면 됩니다. 아래 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • 날짜 문자열 목록과 이에 대응하는 y 값 리스트를 생성합니다.
  • 문자열 형태의 날짜를 datetime 객체로 변환하여 x축 값으로 준비합니다.
  • plt.gca()로 현재 축(current axis)을 가져옵니다.
  • X축의 메인 눈금에 적용할 날짜 포매터(DateFormatter)와 로케이터(DayLocator)를 설정합니다.
  • plot() 메서드를 사용해 x 값과 y 값을 그래프로 그립니다.
  • 마지막으로 show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

from datetime import datetime as dt
from matplotlib import pyplot as plt, dates as mdates

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

dates = ["01/02/2020", "01/03/2020", "01/04/2020"]
x_values = [dt.strptime(d, "%m/%d/%Y").date() for d in dates]
y_values = [1, 2, 3]
ax = plt.gca()

formatter = mdates.DateFormatter("%Y-%m-%d")
ax.xaxis.set_major_formatter(formatter)
locator = mdates.DayLocator()
ax.xaxis.set_major_locator(locator)
plt.plot(x_values, y_values)

plt.show()

코드 설명

위 코드에서는 먼저 strptime() 함수를 사용해 "MM/DD/YYYY" 형식의 날짜 문자열을 date 객체로 변환했습니다. 그다음 DateFormatter("%Y-%m-%d")를 통해 X축 눈금 라벨이 "YYYY-MM-DD" 형식으로 표시되도록 지정하고, DayLocator를 설정하여 눈금이 일(day) 단위로 배치되게 했습니다. 이렇게 하면 시계열 데이터를 다룰 때 X축의 날짜가 깔끔하고 읽기 쉬운 형태로 자동 정렬됩니다.

실행 결과

Matplotlib에서 X축에 날짜와 시간을 표시하는 방법