Pandas로 시계열 데이터를 시각화하다 보면 특정 날짜나 시점을 강조하기 위해 그래프에 수직선을 추가해야 하는 경우가 자주 있습니다. 이럴 때 matplotlib의 axvline() 메서드를 사용하면 아주 간단하게 해결할 수 있습니다. 먼저 데이터프레임을 생성한 뒤, 해당 축(ax) 위에 원하는 위치에 수직선을 그려보겠습니다.
구현 단계
- pandas를 이용해 데이터프레임을 생성합니다.
pd.date_range()로 날짜 범위를 인덱스로 설정하여 시계열 데이터프레임을 만듭니다.axvline()을 호출해 초록색 점선(dashed) 스타일의 수직선을 추가합니다.- 같은 방식으로 빨간색 점선 스타일의 수직선을 하나 더 추가합니다.
plt.show()를 실행해 최종 플롯을 화면에 표시합니다.
예제 코드
import pandas as pd
from matplotlib import pyplot as plt
df = pd.DataFrame(index=pd.date_range("2019-07-01", "2019-07-31"))
df["y"] = 1
ax = df.plot()
ax.axvline("2019-07-24", color="green", linestyle="dashed")
ax.axvline("2019-07-31", color="red", linestyle="dashed")
plt.show()
코드 설명
pd.date_range("2019-07-01", "2019-07-31"): 2019년 7월 1일부터 7월 31일까지의 날짜 범위를 데이터프레임의 인덱스로 설정합니다.df["y"] = 1: 값이 모두 1인 'y' 열을 추가해 기본 선 그래프를 그릴 데이터를 준비합니다.ax.axvline("2019-07-24", color="green", linestyle="dashed"): x축의 지정한 날짜 위치에 초록색 점선으로 수직선을 그립니다.ax.axvline("2019-07-31", color="red", linestyle="dashed"): 동일한 방식으로 빨간색 점선 수직선을 추가합니다.
실행 결과

이처럼 axvline()을 활용하면 시계열 그래프에서 관심 있는 특정 날짜나 이벤트 발생 시점을 색상과 선 스타일을 지정해 시각적으로 쉽게 강조할 수 있습니다.