跟着高分SCI学画图:R语言绘制甘特图
甘特图(Gantt Chart)是一种项目管理工具,用于直观显示项目计划、任务的进度和时间安排。它通常以条形图的形式表示各任务的开始时间、结束时间以及任务的持续时间。
一、你好!甘特图
甘特图的组成部分和各部分的作用
时间轴:甘特图的水平轴通常代表时间,可以是天、周、月,甚至是小时,具体取决于项目的时间跨度。 任务列表:垂直轴列出项目中的任务、活动或里程碑。每个任务都对应一个条形。 条形长度:条形的长度表示任务的持续时间。条形的起点和终点分别表示任务的开始时间和结束时间。 依赖关系:甘特图可以显示任务之间的依赖关系。例如,一个任务可能在另一个任务完成之前无法开始,这种依赖关系通常通过箭头或连接线表示。 任务状态:通过不同颜色、填充或图案,可以显示任务的状态(如未开始、进行中、已完成等)。
甘特图的用途
项目计划:甘特图帮助项目经理和团队成员了解任务的时间安排、任务持续时间及各任务的优先级。 进度跟踪:通过甘特图,可以轻松查看项目的实际进展情况,确保项目按计划进行。 资源分配:它帮助团队识别资源冲突和工作负荷不平衡,并做出相应调整。 沟通工具:甘特图是与团队成员、客户和其他利益相关者分享项目进度的有力工具。
二、开始画图啦!
首先我们先介绍几个本次绘图用到的有特色的函数!
geom_sf
:绘制空间对象(sf对象)的几何形状。世界各国的海岸线形状,就是用它绘制的哦!coord_sf
:设置坐标系统,指定地图使用Eckert IV投影。
数据展示
加载R包
library(ggplot2)
library(dplyr)
读取数据
data <- read.csv("test_data.csv")
data$means <- apply(data[,c(2,3)], 1, mean)
head(data)
table(data$metastasis)
data$color <- gsub("Bone Met.", "#947559", data$metastasis)
data$color <- gsub("Lung Met.", "#8678b0", data$color)
data$color <- gsub("Brain Met.", "#9f436b", data$color)
data$color <- gsub("Liver Met.", "#9abc6d", data$color)
data$color[which(data$color == "Primary")] <- c("#c97d80","#bba7cb",
"#c1d9ec", "#f1bac8")
绘图
对组内数据,根据means从大到小重排:
data2 <- data %>%
arrange(CancerType, means) %>%
ungroup %>%
mutate(id=rep(c(1:5),4))
data2 <- data %>%
arrange(CancerType, means) %>%
ungroup %>%
mutate(id=rep(c(1:5),4))
设置颜色变量
cols <- data$color
names(cols) <- cols
最终绘图代码
ggplot(data2)+
# 这行代码构建空坐标系用:
geom_point(aes(x=means, y=CancerType), color = "white")+
# 背景阴影1:
geom_rect(aes(xmin=0, xmax=Inf, ymin=1.5, ymax=2.5), fill = "#e6e6e6")+
# 背景阴影2:
geom_rect(aes(xmin=0, xmax=Inf, ymin=3.5, ymax=4.5), fill = "#e6e6e6")+
# 虚线:
geom_linerange(aes(xmin = 0, xmax = high,
y = CancerType, group = id),
position = position_dodge(width = 0.5),
linetype = "dashed")+
# 方块:
geom_tile(aes(x = means, y = CancerType,
height = 0.4, width = high-low,
group = id, fill = color),
color = "black",
position = position_dodge(width = 0.5),
size = 0.3)+
# 均值点:
geom_point(aes(x=means, y=CancerType, group = id, fill=color),
shape=21, color = "black",
position = position_dodge(width = 0.5),
size=3)+
# 标签:
geom_text(aes(label = paste0(metastasis, "(",number,")"),
x=high+0.08, y=CancerType, group = id),
position = position_dodge(width = 0.5), size=3)+
# 主题:
theme_classic() +
# 去掉图形与坐标轴间隙并设置x轴刻度:
scale_x_continuous(expand = c(0,0),
breaks = seq(0, 1.25, 0.25))+
scale_fill_manual(values = cols)+
# 修改x轴和y轴标签:
xlab("Area Under Kaplan-Meier Plot of Overall Survival\n(40 months follow-up)")+
ylab("")+
# 自定义主题:
theme(legend.position = "none",
axis.ticks.y = element_blank(),
axis.text.y = element_text(angle=90, hjust = 0.5, vjust = 2,
size = 10, color = "black"))
ggsave("gantt_chart.png", height = 7, width = 6)
总结
甘特图是项目管理中不可或缺的工具,尤其适用于计划和监控项目进度。它直观且易于理解,但在面对大型项目或频繁变化时需要额外的注意和维护。
本文作者:杨硕龄
现在:
长按扫码关注:科研生信充电宝
10元赞赏本文,即喜欢作者~
即可直接解锁:
《跟着高分SCI学画图:R语言绘制甘特图》对应资源哦~
看到这里你还不心动吗?
赶紧关注、转发、点赞、分享,领取你的专属福利吧~
好啦,以上就是今天推文的全部内容啦!
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本公众号不拥有所有权,也不承担相关法律责任。
如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:kysxcdb@163.com 进行举报,一经查实,本公众号将立刻删除涉嫌侵权内容。