####森林图绘制 forestplot
#### A practice for forest plot
##set your working directory
workdir <- "D:/R"
setwd(workdir)
datafile <- file.path(workdir,"ForestPlotData.csv")
data <- read.csv(datafile, stringsAsFactors=FALSE)
data[1:5,1:5]
## 定义亚组
subgps <- c(4,5,8,9,12,13,16,17,20,21,24,25,28,29,32,33)
data$Variable[subgps] <- paste(" ",data$Variable[subgps])
## Combine the count and percent column,以括号相连
np <- ifelse(!is.na(data$Count), paste(data$Count," (",data$Percent,")",sep=""), NA)
## The rest of the columns in the table.
tabletext <- cbind(c("Subgroup","\n",data$Variable),
c("No. of Patients (%)","\n",np),
c("4-Yr Cum. Event Rate\n PCI","\n",data$PCI.Group),
c("4-Yr Cum. Event Rate\n Medical Therapy","\n",data$Medical.Therapy.Group),
c("P Value","\n",data$P.Value))
##
library(forestplot)
png(filename = "Forestplot.png",width=960, height=640)
forestplot(labeltext=tabletext, graph.pos=3,
mean=c(NA,NA,data$Point.Estimate),
lower=c(NA,NA,data$Low), upper=c(NA,NA,data$High),
title="Hazard Ratio",
##定义x轴
xlab=" <---PCI Better--- ---Medical Therapy Better--->",
##设置透明条位置
hrzl_lines=list("3" = gpar(lwd=1, col="#99999922"),
"7" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"15" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"23" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"31" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922")),
txt_gp=fpTxtGp(label=gpar(cex=1.25),
ticks=gpar(cex=1.1),
xlab=gpar(cex = 1.2),
title=gpar(cex = 1.2)),
##线条颜色设置
col=fpColors(box="#1c61b6", lines="#1c61b6", zero = "gray50"),
zero=1, cex=0.9, lineheight = "auto", boxsize=0.5, colgap=unit(6,"mm"),
lwd.ci=2, ci.vertices=TRUE, ci.vertices.height = 0.4)
dev.off()
##
网友评论