Каждый проект имеет цель, временную шкалу. Проекты используют ресурсы. Все проекты состоят из взаимозависимых, индивидуальных шагов, называемых задачами. По своему характеру проекты являются динамическими процессами.
Диаграмма Ганта является удобным и простым инструментом представления структуры задач, наглядно отражающий ход работы над проектом. Первый формат диаграммы был разработан Генри Л. Гантом в 1910 г. Основу диаграммы составляет таблица, в которой перечислены задания и временная диаграмма ресурсов.
В этой публикации описано, как с помощью статистического пакета R описать и нарисовать диаграмму Ганта (этот рисунок впоследствии может быть экспортирован как TikZ и включён в код LaTeX'a).
Вначале следует загрузить нужную библиотеку, частью которой является команда gantt.chart():
> library(plotrix)
Создадим теперь список задач, из которых состоит наш проект:
> Ymd.format<-"%Y/%m/%d" # указываем на вид вводимых дат: год/месяц/день
> gantt.info<-list(labels=c("First task","Second task","Third task","Fourth task","Fifth task"),
starts=as.POSIXct(strptime(c("2004/01/01","2004/02/02","2004/03/03","2004/05/05","2004/09/09"),
format=Ymd.format)),ends=as.POSIXct(strptime(c("2004/03/03","2004/05/05","2004/05/05","2004/08/08","2004/12/12"),format=Ymd.format)),priorities=c(1,2,3,4,5))
Очевидно, что сначала идут имена задач (labels), потом, соответственно, — время их начала (starts) и окончания (ends) в заданном ранее формате, и наконец их приоритетность.
Укажем теперь программе, как именно ставить метки на временной оси:
> vgridpos<-as.POSIXct(strptime(c("2004/01/01","2004/02/01","2004/03/01","2004/04/01","2004/05/01","2004/06/01","2004/07/01","2004/08/01","2004/09/01","2004/10/01","2004/11/01","2004/12/01"),format=Ymd.format))
И как они будут называться на готовой диаграмме:
> vgridlab<-c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
Финал, строим собственно саму диаграмму:
> gantt.chart(gantt.info,main="Calendar date Gantt chart (2004)",priority.legend=TRUE,vgridpos=vgridpos,vgridlab=vgridlab,hgrid=TRUE)
Читать далее