코딩 자산관리

[Colab/plotly] 쉽게 간트 차트 만들기

은행장 노씨 2024. 4. 18. 20:13

 

 

간트 차트 쉽게 무료로 만드는 방법 어디 없나?

찾아봐도 좀 복잡해보이거나 유료 밖에 없다. 

 

이리저리 찾아보다가 plotly로 쉽게 만드는 법을 찾았다. 

 

바로 들어간다. 

(앗, 참고로 나의 간트 차트는 정석이 아니다. 간단 일정 확인용)


1. 작업 목록 생성하기

프로젝트를 구성하는 모든 작업을 나열합니다. 나는 작업을 정의하고 세부 작업을 리스트로 나열해봤다. 

아래는 간단한 예시다. 

1. 데이터 관리
- 데이터 수집
- 데이터 분석
- 데이터베이스 설계 및 구축

2. 개발
- 서버 구축: 서버 인프라 설정 및 테스트
- 앱 개발 (프론트엔드): 사용자 인터페이스 개발 및 통합
- 앱 개발 (백엔드): 백엔드 시스템 및 API 개발

3. 디자인 및 테스트
- 앱 디자인: UI/UX 디자인 및 프로토타입 제작
- 실험 설계 및 준비: 실험 계획 수립 및 사용자 모집
- 실험 실행: 사용자 피드백 수집 및 성능 평가

 

 

2. 작업 목록별 타임라인 구성하기

세부 작업별 시작 날짜, 종료 날짜를 계획한다. 나는 보기 좋게 표로 만들었다. 

카테고리 활동 시작날짜 종료날짜
데이터 관리 데이터 수집 2024-04-17 2024-05-14
  데이터 분석 2024-05-01 2024-05-28
  데이터베이스 설계 및 구축 2024-06-01 2024-06-25
개발 서버 구축 2024-06-12 2024-07-09
... ... 2024-04-17 2024-05-14

 

 

3. Colab

이제 모든 준비는 끝났다. 코랩을 킨다. 

계획했던 작업을 형식에 맞게 넣는다. (+ 기본 차트의 색 조합이 마음에 들지 않아 색은 따로 설정했다.)

# 리소스 그룹 및 색상
resources = {
    "데이터 관리": "#1f77b4",
    "개발": "#17becf",
    "디자인 및 테스트": "#aec7e8"
}

# Gantt 차트를 위한 데이터 생성
gantt_data = [
    dict(Task="데이터 수집", Start="2023-04-17", Finish="2023-05-14", Resource="데이터 관리"),
    dict(Task="데이터 분석", Start="2023-05-01", Finish="2023-05-28", Resource="데이터 관리"),
    dict(Task="데이터베이스 구축", Start="2023-05-15", Finish="2023-06-11", Resource="데이터 관리"),
    dict(Task="서버 구축", Start="2023-06-01", Finish="2023-06-25", Resource="개발"),
    dict(Task="분석 모델 개발", Start="2023-06-12", Finish="2023-07-09", Resource="개발"),
    dict(Task="FE 개발", Start="2023-07-24", Finish="2023-08-13", Resource="개발"),
    dict(Task="BE 개발", Start="2023-07-24", Finish="2023-08-13", Resource="개발"),
    dict(Task="UI/UX 디자인", Start="2023-06-26", Finish="2023-07-23", Resource="디자인 및 테스트"),
    dict(Task="실험 설계 및 준비", Start="2023-07-17", Finish="2023-08-13", Resource="디자인 및 테스트"),
    dict(Task="파일럿 테스트", Start="2023-08-01", Finish="2023-09-01", Resource="디자인 및 테스트"),
]
import plotly.figure_factory as ff

def create_gantt_chart(gantt_data, resources, title="프로젝트 스케줄 개요"):
    fig = ff.create_gantt(
        gantt_data, 
        index_col='Resource', 
        colors=[resources[res] for res in resources],
        show_colorbar=True, 
        group_tasks=True,
        title=title
    )
    fig.update_layout(
        xaxis=dict(
            showgrid=True, 
            gridcolor='lightgrey',
            dtick="M1"
        ),
        plot_bgcolor='white',
        paper_bgcolor='white'
    )
    return fig

# 차트 생성 및 표시
fig = create_gantt_chart(gantt_data, resources)
fig.show()

 

생각보다 퀄리티가 괜찮다.

 

작업간 의존성을 시각화할 수 없는 아쉬운 점이 있다. 

 


더 공부해보자. 

다른 기능이나 세부적인 디테일을 알고싶으면 아래의 사이트를 참고해도 좋다. 

https://wikidocs.net/187713

 

06-05 Gantt Charts

Gantt Chart 시간 경과에 따른 프로젝트 계획을 시각화하는방법으로 어떤 작업이 언제, 누구에 의해 완료될 예정인지 보여줍니다 Plotly를 활용하여 Gantt Ch…

wikidocs.net