Plotly Gantt Charts 배우기

상후·2025년 6월 18일

Plotly 정리

목록 보기
12/18
post-thumbnail

시작하기 전에 import 하기

import plotly.express as px
import plotly.graph_objects as go
import plotly.express as px
import numpy as np

Gantt Chart 시간 경과에 따른 프로젝트 계획을 시각화하는방법으로 어떤 작업이 언제, 누구에 의해 완료될 예정인지 보여줍니다
Plotly를 활용하여 Gantt Chart 를 그리는 방법에 대해 알아보도록 하겠습니다.
Keyword : Plotly Gantt Chart, Plotly 간트 차트, px.timeline

기본 사용방법

px.timeline() 함수를 사용하여 구현합니다.
Input 데이터의 x축은 ISO 형식의 날짜 문자열 또는 판다스 date 컬럼 또는 datetime 넘파이 array 형식을 갖춰야만 합니다

예시

import plotly.express as px
import pandas as pd
# 데이터셋 만들기
df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28'),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')
])
# Gantt Chart 만들기
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
# 위에서부터 시작하게 Y축 역방향으로 설정 
fig.update_yaxes(autorange="reversed")
fig.show()

[사용 함수]
px.timeline()
[함수 input 내용]
data_frame = pandas 데이터 프레임
x_start= 일정 시작 열
x_end= 일정 끝 열
y = y축 범주형 데이터


색으로 담당자 구분하기

간트 차트 내에 범주형 데이터 구분을 색을 통해 가능합니다. 주로 프로젝트 별 담당자를 구분할 때 사용합니다.

import plotly.express as px
import pandas as pd
# 데이터셋 만들기
df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Resource="Alex"),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15', Resource="Alex"),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30', Resource="Max")
])
# Gantt Chart 만들기
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Resource")
# 위에서부터 시작하게 Y축 역방향으로 설정
fig.update_yaxes(autorange="reversed")
fig.show()


colormap을 활용해 프로젝트 진행도 표현하

간트 차트 내에 연속형 데이터는 구분을 colormap을 활용해 표현 가능합니다. 주로 프로잭트 별 수행도 백분율을 표시할 때 사용됩니다.

import plotly.express as px
import pandas as pd
# 데이터셋 만들기
df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Completion_pct=50),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15',Completion_pct=25),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30', Completion_pct=75)
])
# Gantt Chart 만들기
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Completion_pct")
# 위에서부터 시작하게 Y축 역방향으로 설정
fig.update_yaxes(autorange="reversed")
fig.show()


profile
개발자를 꿈꾸는 학생

0개의 댓글