데이터 분석에서 특정 시점에 발생한 이벤트를 시각화해야 하는 경우가 자주 있습니다. Matplotlib의 eventplot() 함수를 사용하면 시간축 위에 발생한 이벤트들을 간단하고 직관적으로 표현할 수 있습니다. 이 글에서는 단계별로 구현 방법을 살펴보겠습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백을 조정합니다.
- 이벤트가 발생할 수 있는 데이터 포인트 목록을 생성합니다.
- y, xmin, xmax 값을 지정하여 수평선을 그립니다.
- 주어진 위치들에 동일한 평행선(이벤트 마커)들을 배치합니다.
- show() 메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True a = [1, 2, 5, 6, 9, 11, 15, 17, 18] plt.hlines(1, 0, 24) plt.eventplot(a, orientation='horizontal', colors='b') plt.show()
코드 설명
rcParams 설정을 통해 그림 크기를 7.50 x 3.50 인치로 지정하고, autolayout 옵션으로 요소들이 잘리지 않도록 자동 여백을 적용합니다.
리스트 a에는 24시간 중 이벤트가 발생한 시점들이 담겨 있습니다. hlines(1, 0, 24)는 y=1 위치에 x축 범위 0부터 24까지의 기준 수평선을 그려 시간축 역할을 합니다.
핵심 함수인 eventplot()은 리스트 a의 각 값 위치에 파란색('b') 수직 선분들을 그려 이벤트 발생 시점을 표시합니다. orientation='horizontal' 인자는 이벤트 라인들의 배열 방향을 수평으로 지정합니다.
실행 결과
코드를 실행하면 가로로 긴 시간축 위에 이벤트가 발생한 9개 시점(1, 2, 5, 6, 9, 11, 15, 17, 18)이 짧은 파란색 선분으로 표시된 그래프가 출력됩니다. 이러한 시각화는 서버 로그 분석, 실험 데이터의 이벤트 타임라인 표현 등 다양한 분야에서 활용됩니다.