간트 차트(Gantt Chart)는 프로젝트 관리와 일정 계획에서 가장 널리 활용되는 시각화 도구 중 하나입니다. 간트 차트는 막대그래프의 한 종류로, 세로축에는 작업 목록을, 가로축에는 시간 구간을 배치합니다. 그래프에서 가로 막대의 길이는 각 작업의 소요 기간을 나타내므로, 프로젝트 전체 일정과 작업 간 순서를 한눈에 파악할 수 있습니다.
Python의 Matplotlib 라이브러리에서는 broken_barh() 메서드를 사용하면 간단하게 간트 차트를 그릴 수 있습니다.
구현 단계
그림(figure) 크기를 설정하고 서브플롯(subplot) 주변 및 사이의 여백을 조정합니다.
그림과 서브플롯 집합을 생성합니다.
broken_barh() 메서드로 가로 방향의 직사각형 시퀀스를 그립니다.
축의 y축과 x축 범위(limit)를 설정합니다.
show() 메서드를 호출하여 그래프를 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt # 그림 크기 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 그림과 서브플롯 생성 fig, ax = plt.subplots() # 가로 방향 직사각형 시퀀스 그리기 ax.broken_barh([(110, 30), (150, 10)], (10, 9), facecolors='tab:blue') ax.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9), facecolors='tab:orange') # 축의 ylim과 xlim 설정 ax.set_ylim(5, 35) ax.set_xlim(0, 200) # 그래프 표시 plt.show()
코드 설명
broken_barh() 메서드는 두 개의 주요 인자를 받습니다. 첫 번째 인자는 (시작 위치, 막대 길이) 형태의 튜플 리스트로, 각 막대가 x축 어디에서 시작하고 얼마나 이어지는지를 정의합니다. 두 번째 인자는 (y 시작 위치, 막대 높이) 튜플로, 해당 행의 세로 위치와 두께를 결정합니다. 위 예제에서는 파란색(tab:blue)과 주황색(tab:orange)으로 서로 다른 두 작업 그룹을 표현했습니다.
실행 결과
위 코드를 실행하면 아래와 같은 간트 차트가 출력됩니다.
