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

Matplotlib에서 Pandas 데이터프레임의 시간을 인덱스 값으로 플로팅하는 방법

Matplotlib에서 Pandas 데이터프레임의 시간(time)을 인덱스 값으로 사용하여 플로팅하려면 아래 단계를 따르면 됩니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변 여백(padding)을 조정합니다.
  • timespeed 두 개의 열을 가진 Pandas 데이터프레임을 생성합니다.
  • 기존 열을 활용해 DataFrame의 인덱스를 설정합니다.
  • 그래프를 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

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

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# Pandas 데이터프레임 생성
df = pd.DataFrame(dict(time=list(pd.date_range("2021-01-01 12:00:00", periods=10)), speed=np.linspace(1, 10, 10)))

# 'time' 열을 인덱스로 설정 후 플로팅
df.set_index('time').plot()

# 그래프 표시
plt.show()

실행 결과

위 코드를 실행하면 x축에 시간 값이 인덱스로 배치된 선 그래프가 출력됩니다.

Matplotlib에서 Pandas 데이터프레임의 시간을 인덱스 값으로 플로팅하는 방법

코드 설명

pd.date_range() 함수는 지정한 시작 시점부터 일정한 간격으로 날짜·시간 값을 생성하며, 여기서는 10개의 시간 데이터가 만들어집니다. np.linspace(1, 10, 10)은 1부터 10까지 균등하게 나눈 속도(speed) 값을 생성합니다.

핵심은 df.set_index('time') 부분입니다. 이 메서드를 호출하면 'time' 열이 DataFrame의 인덱스로 지정되고, 이후 .plot()을 호출하면 Matplotlib가 자동으로 시간 축을 인식하여 적절한 눈금 형식으로 x축을 구성해 줍니다. 덕분에 별도의 날짜 포맷 작업 없이도 시계열 그래프를 깔끔하게 그릴 수 있습니다.