Wykres Gantta wyświetla listę działań (lub zadań) wraz z ich długością trwania w czasie. W prosty sposób możesz odczytać, kiedy zaczyna się i kończy każde działanie. Dodatkowo od razu zobaczysz na nim równolegle wykonane zadania. I właśnie dlatego wykres ten jest przede wszystkim używany jako narzędzie do zarządzania projektami.
Wykres Gantta to rodzaj wykresu słupkowego / kolumnowego używanego do zilustrowania planów i harmonogramów. Wiersze przedstawiają działania, a kolumny są użyte jako skala czasu. Czas trwania każdej czynności jest reprezentowany przez długość słupka wykreślonego w tej skali czasu. Początek słupka to początek czynności, a koniec jego koniec to moment, w którym czynność powinna się zakończyć. Oznaczanie pasków kolorami umożliwia podzielenie działań na grupy. Aby pokazać procent ukończenia czynności, słupek można częściowo wypełnić, inaczej zacieniować lub użyć innego koloru, aby odróżnić to, co zostało zrobione, od tego, co pozostało do zrobienia.
W zależności od potrzeb na wykresie mogą znaleźć się dodatkowe oznaczenia. Dla przykładu:
- strzałki łączące mogą służyć do pokazania, które zadania są od siebie zależne;
- symbole (np. diament) może oznaczyć kamienie milowe;
- pionowa linia biegnąca przez wykres może posłużyć do podświetlenia bieżącej daty.
Historia
Wykres Gantta nazwany został na cześć jego wynalazcy, Henry’ego Gantta, który zaprojektował go po raz pierwszy w latach 1910–1915. Tuż po jego wprowadzeniu uznano to rozwiązanie za rewolucyjne. Natomiast ciekawostką jest to, że pierwsze znane narzędzie tego typu opracował w 1896 roku Karol Adamiecki. Nazwał je harmonogramem. Niestety Karol opublikował swoją wizualizację dopiero w 1931 roku i tylko w języku polskim. To ograniczyło zarówno jej przyjęcie, jak i uznanie jego autorstwa.Tak więc uczmy się na błędach z historii i zapamiętajmy: jak coś wymyślimy to trzeba podzielić się tym również po angielsku!
Wykres Gantta w Python
Możemy przykładowy wykres narysować, chociażby przy wykorzystaniu pakietu plotly. Wczytajmy dane (pobrać możesz je TUTAJ).
import pandas as pd
import plotly.express as px
df = pd.read_csv('../data/015.gantt.txt', parse_dates=['start', 'end'])
df.head()
Jak widzisz, w kolumnie przygotowałem nazwę zadania oraz datę startu i zakończenia. Teraz można wykorzystać wykres timeline:
fig = px.timeline(df, x_start="start", x_end="end", y="task")
fig.update_yaxes(autorange="reversed")
fig.show()
W prosty sposób możesz zróżnicować na wykresie kolory, by dla przykładu zróżnicować zadania dla zespołów:
fig = px.timeline(df, x_start="start", x_end="end", y="task", color="team")
fig.update_yaxes(autorange="reversed")
fig.show()
Mam nadzieję, że przyda Ci się ten wykres, jak będziesz chciał pokazać różne zadani, czy czas życia poszczególnych produktów, klientów czy sesji na osi czasu. Daj znać w komentarzu, czy widzisz jakieś zastosowanie u siebie!
Pozdrawiam z całego serducha,