在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))
)
效果图如下:

浙公网安备 33010602011771号