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

Matplotlib에서 날짜 x축 눈금 레이블(xticklabels) 설정하는 방법

Matplotlib에서 날짜 데이터에 대한 xticklabels(x축 눈금 레이블)를 설정하려면 아래 단계를 따르면 됩니다.

단계별 절차

  • 그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 조정합니다.
  • epoch 값과 value 값으로 이루어진 두 개의 리스트를 생성합니다.
  • epoch 값으로부터 사람이 읽을 수 있는 날짜 문자열 리스트를 만듭니다.
  • figure와 subplot을 생성합니다.
  • plot() 메서드를 사용해 날짜와 값을 그래프로 그립니다.
  • xticklabels를 설정한 후, DateFormatter로 날짜 포매터를 만들어 x축의 major formatter로 지정합니다.
  • 눈금 레이블끼리 겹치지 않도록 rotation 옵션으로 10도 회전시킵니다.
  • show() 메서드를 호출하여 그래프를 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import time

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

epochs = [1259969793926, 1259969793927, 1259969793929, 1259969793928, 1259969793939]
values = [-0.5, -0.5, -0.75, -0.5, -1.25]

dates = [time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(date)) for date in epochs]

fig, axes = plt.subplots(1, 1)
line1, = axes.plot(dates, values, lw=2, marker='*', color='r')

axes.set_xticklabels(dates)
fmt = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')

axes.xaxis.set_major_formatter(fmt)
axes.tick_params(rotation=10)

plt.show()

실행 결과

위 코드를 실행하면 다음과 같은 그래프가 출력됩니다.

Matplotlib에서 날짜 x축 눈금 레이블(xticklabels) 설정하는 방법

이처럼 matplotlib.dates 모듈의 DateFormatter를 활용하면 밀리초 단위의 epoch 타임스탬프를 'YYYY-MM-DD HH:MM:SS' 형식의 가독성 높은 날짜 레이블로 손쉽게 변환할 수 있습니다. 또한 tick_params(rotation=10)을 사용하면 긴 날짜 문자열이 서로 겹치는 문제를 방지할 수 있어 시계열 데이터 시각화에 매우 유용합니다.