Przeskocz nawigację.
Strona główna

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łącznikWielkość
gantt.r1.93 KB