Wykres Gantta w R
Zobacz również Instrukcja dla arkusza kalkulacyjnego Excel
Wyobraźmy sobie, że potrzebujemy w szybki sposób wizualnie przedstawić pewien harmonogram zadań (wykres Gantta).
Program R pozwala w prosty sposób rozwiązać problem.
Niech nasz plan prac będzie następujący:
Zadania | Początek | Ilość dni |
Zadanie 10 | 2009-04-28 | 3 |
Zadanie 9 | 2009-04-26 | 7 |
Zadanie 8 | 2009-04-23 | 5 |
Zadanie 7 | 2009-04-15 | 11 |
Zadanie 6 | 2009-04-12 | 12 |
Zadanie 5 | 2009-04-11 | 9 |
Zadanie 4 | 2009-04-08 | 5 |
Zadanie 3 | 2009-04-03 | 7 |
Zadanie 2 | 2009-04-02 | 2 |
Zadanie 1 | 2009-04-01 | 3 |
W pierwszej kolejności musimy zainstalować bibliotekę plotrix i załadować albo tylko załadować, jeżeli wcześniej ją zainstalowaliśmy. Robimy to używając poleceń:
install.packages("plotrix") #instalacja
library("plotrix") #ładowanie
Ustalmy format dat zgodny z zawartością tabeli:
Ymd.format<-"%Y-%m-%d"
Wprowadzamy nazwy zadań:
labels <- c("Zadanie 10", "Zadanie 9", "Zadanie 8", "Zadanie 7", "Zadanie 6", "Zadanie 5", "Zadanie 4", "Zadanie 3", "Zadanie 2", "Zadanie 1")
Określamy daty startowych dla zadań:
starts <- as.POSIXct(strptime( c("2009-04-28", "2009-04-26", "2009-04-23", "2009-04-15", "2009-04-12", "2009-04-11", "2009-04-08", "2009-04-03", "2009-04-02", "2009-04-01"), format=Ymd.format))
Określamy ilość dni na zadania:
dni <- c(3,7,5,11,12,9,5,7,2,3)
Określamy daty końcowe dla zadań:
ends <- starts+dni*24*60*60
Wyrażenie 24*60*60 to liczba sekund w ciągu dnia.
Poszczególnym zadaniom przypisujemy priorytety:
priorities=c(1,1,1,1,1,1,1,1,1,1)
Wszystkim zadaniom przypisaliś priorytet 1 ale tak być nie musi, wtedy w wektorze priorities wpisujemy różne liczby.
Wszystkie przygotowane dane łączymy w jedną listę:
gantt.info<-list(labels=labels,starts=starts, ends=ends, priorities=priorities)
Tworzymy wykres Gantta:
gantt.chart(gantt.info, main="Wykres Gantta")
Dodatkowo możemy ustalić w których miejscach będą znajdowały się kreski pionowe oraz jak będą one oznakowane:
vgridpos <- as.POSIXct(strptime(c("2009-04-01", "2009-04-05", "2009-04-10", "2009-04-15", "2009-04-20", "2009-04-25", "2009-04-30"),format=Ymd.format))
vgridlab <- c("Start", "5 dzień", "10 dzień", "15 dzień", "20 dzień", "25 dzień", "30 dzień")
W zmiennej vgridlab umieściliśmy ilość dni trwania projektu.
Ponownie rysujemy wykres Gantta:
gantt.chart(gantt.info, main="Wykres Gantta", vgridpos=vgridpos, vgridlab=vgridlab, hgrid=TRUE)
Tym razem dodatkowo domalowaliśmy linie poziome (opcja hgrid=TRUE).
Załącznik | Wielkość |
---|---|
gantt.r | 1.93 KB |