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

Matplotlib에서 시간대가 있는 시간 데이터 처리하는 방법

Matplotlib에서 시간대(timezone) 정보가 포함된 시간 데이터를 다루려면 pytz 라이브러리를 활용하면 됩니다. 아래에서 단계별로 살펴보겠습니다.

처리 절차

  • 먼저 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • 2차원이면서 크기 변경이 가능한 표 형태의 데이터프레임(DataFrame)을 생성합니다.
  • 시간대가 있는 시간을 처리하기 위해 Olson tz 데이터베이스를 Python으로 가져오는 pytz 라이브러리를 사용합니다. 이 라이브러리를 이용하면 정확하고 크로스 플랫폼에서 일관된 시간대 계산이 가능합니다.
  • plot() 메서드를 사용해 데이터프레임을 그래프로 그립니다.
  • 마지막으로 show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import pytz

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

df = pd.DataFrame(
    dict(y=np.random.normal(size=5)),
    index=pd.date_range(
        start='2018-03-11 01:30',
        freq='15min',
        periods=5,
        tz=pytz.timezone('US/Eastern')))
df.plot()

plt.show()

코드 설명

위 예제에서는 pd.date_range() 함수의 tz 인자에 pytz.timezone('US/Eastern')을 전달하여 미국 동부 시간대 기준의 DatetimeIndex를 생성합니다. 시작 시각 '2018-03-11 01:30'부터 15분 간격으로 총 5개의 시점이 만들어지며, 각 인덱스에는 시간대 정보가 함께 포함됩니다. 이렇게 생성된 데이터프레임을 plot()으로 시각화하면 x축에 시간대가 반영된 시간 레이블이 자동으로 표시됩니다.

실행 결과

Matplotlib에서 시간대가 있는 시간 데이터 처리하는 방법