#object: 繪制森林圖 #writer: mike #time: 2020.10.13 #構造數據集 names <- c("a","b","c","d","e","f","g","h","l","m"); or <- c(0.9,2,0.3,0.4,0.5,1.3,2.5,1.6,1.9,1.1); lower <- c(0.75,1.79,0.18,0.2,0.38,1.15,2.41,1.41,1.66,0.97); upper <- c(1.05,2.11,0.42,0.6,0.62,1.45,2.59,1.79,2.14,1.23); sample <- c(450,420,390,400,470,390,400,388,480,460); factors <- c("risk","risk","protec","protec","protec","risk","risk","risk","risk","risk"); #構造數據框 data <- data.frame(names,or,lower,upper,sample,factors); #載入包 library("ggplot2"); #顏色無法設置,顏色的設置不需要使用foctor()函數,但是必須使用col 而不是colors或者colours,注意這里一旦設置了顏色,就會和下面的塗層重合不到一起 #不知道為什么會這樣,好像是如果加上顏色之后,那么就要對后加的數據進行分類,並分配顏色。 p <- ggplot(data, aes(x=or, y=names)); #如果在point這里設置顏色,只會改變點的顏色,而上面會改變,與某一個數據有關的所有圖像的顏色 p <- p + geom_point(size=3.6) + geom_errorbarh(aes(xmax=upper, xmin=lower, height=0.3)) + scale_x_continuous(limits=c(0.1,5), breaks=seq(0,5,0.5)) + geom_vline(aes(xintercept=1)) + xlab("oddRatio") + ylab("") #在圖形中加入標簽 #x坐標 lx <- c(rep(2.87,11)); #y坐標 ly <- c(11,10,9,8,7,6,5,4,3,2,1); #標簽 llab <- c("p value","0.01","0.01","0.01","0.01","0.01","0.01","0.01","0.01","0.01","0.05"); #構建另一個數據框 data1 <- data.frame(lx,ly,llab); p <- p + geom_text(data=data1, aes(x=lx,y=ly,label=llab)) p