在R中绘制甘特图(任务进度图),使用plotrix包
甘特图(Gantt chart)是用来规划和展示项目进度的一种图表形式,在一些项目汇报时会经常用到。这里介绍在R里使用plotrix包绘制甘特图的代码。
首先安装和加载所需要的软件包。
# install.packages("plotrix") library(plotrix)
然后构建一个数据集,注意使用注释帮助快速寻找对应关系,也可以做成一个表格再读入。
# 日期格式 Ymd.format<-"%Y/%m/%d" # 主要数据集,包括标签labels和起止时间戳 gantt.info <-list(labels= c("制定规范", #1 "资料收集", #2 "构建体系", #3 "野外考察", #4 "编撰报告", #5 "数据整编", #6 "制作图集", #7 "构建数据库", #8 "数据共享", #9 "学术论文"), #10 starts= as.POSIXct(strptime(c("2022/11/01", #1 "2022/11/01", #2 "2022/11/01", #3 "2023/04/01", #4 "2025/01/01", #5 "2025/01/01", #6 "2024/04/01", #7 "2024/01/01", #8 "2026/01/01", #9 "2023/11/01"), format=Ymd.format)), ends= as.POSIXct(strptime(c("2026/10/31", #1 "2024/04/01", #2 "2024/10/01", #3 "2026/01/01", #4 "2025/10/01", #5 "2026/01/01", #6 "2026/01/01", #7 "2026/07/01", #8 "2026/10/31", #9 "2026/10/31"), format=Ymd.format)), priorities=c(1:10) ) # 这里是显示的时间节点 vgridpos <- as.POSIXct(strptime(c("2022/11/01","2023/12/01", "2024/12/31", "2025/12/01", "2026/11/01"), format=Ymd.format)) vgridpos # 时间节点的标签 vgridlab <- c("2022-11","2023-12", "2024-12", "2025-12", "2026-10") vgridlab
最后使用使用 gantt.chart 函数绘制甘特图,即可,可使用 ?gantt.chart 查看帮助文档。
gantt.chart(gantt.info, main="", # 设置标题 priority.legend= FALSE, # 设置是否展示color图例 vgridpos=vgridpos, # 设置垂直网格线的位置 vgridlab=vgridlab, # 设置垂直网格线的标签 hgrid=TRUE, # 设置是否显示水平网格线 taskcolors = rainbow(10), label.cex = 1.5, xlim=as.POSIXct(strptime(c("2022/10/01","2027/1/1"), format=Ymd.format)) )
效果图如下: