在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))
)

 

效果图如下:

 

posted @ 2022-09-11 16:19  LeleLiu  阅读(894)  评论(0编辑  收藏  举报