森林圖之初體驗 最近小編在瀏覽文獻的時候多次看到了森林圖,心心念念想著怎樣可以畫出來,下面將繪制森林圖的兩種方法推薦給大家。 對于繪制森林圖,我們需要準備的文件大體如下,主要包含基因名、p值、HR值和置信區(qū)間幾個部分。 方法一:forestplot包 #相關R包加載 library(forestplot) #數(shù)據(jù)處理 sample<> tabletext1<> tabletext2<> tabletext3<> tabletext4<> tabletext5<> tabletext<> #繪制森林圖 forestplot(labeltext=tabletext, #文本信息 ???????????mean = round(sample[,3],3),##HR值 ???????????lower = round(sample[,4],2),##95%置信區(qū)間 ???????????upper = round(sample[,5],2),#95%置信區(qū)間 ???????????boxsize = 0.8,##大小 ???????????graph.pos=3,#圖在表中的列位置 ???????????graphwidth = unit(0.4,'npc'),#圖在表中的寬度比例 ???????????fn.ci_norm='fpDrawDiamondCI',#box類型選擇鉆石,可以更改fpDrawNormalCI;fpDrawCircleCI等 ???????????col=fpColors(box='steelblue', lines='black', zero = 'black'),#顏色設置 ???????????lwd.ci=2,ci.vertices.height = 0.1,ci.vertices=TRUE,#置信區(qū)間用線寬、高、型 ???????????zero=1,#zero線橫坐標 ???????????lwd.zero=2,#zero線寬 ???????????grid=T, ???????????lwd.xaxis=2,#X軸線寬 ???????????title='Hazard Ratio', ???????????xlab='',#X軸標題 ???????????clip=c(-Inf,3),#邊界 ???????????colgap = unit(0.5,'cm'),#列間隙 ???????????new_page = TRUE#是否新頁 ) 最終我們將得到下面形式的森林圖 除了上面這樣形式的森林圖,小編在瀏覽文獻中更多的看到的是這樣的森林圖, 這樣的森林圖看上去更像是通過ggplot2包調整繪制的,于是小編進行了第二種森林圖繪制方式的嘗試。 方法二:ggplot2包 ##加載相關R包 library(ggplot2) #數(shù)據(jù)處理 sample<> sample[,2]<> sample[,3]<> sample[,4]<> sample[,5]<> #繪制森林圖 ggplot(sample,aes(x=HR,y=gene.symbol,color=P.value))+ ??geom_errorbarh(aes(xmax=High.95.CI,xmin=Low.95.CI),color='black',height=0,size=0.8)+#加線 ??geom_point(aes(x=HR,y=gene.symbol),size=4,shape=18)+###點 ??geom_vline(xintercept=1,linetype='dashed',size=1.2)+##垂直線 ??scale_x_continuous(breaks=c(0,0.5,1,1.5,2,2.5,3.0))+ ??scale_y_discrete(labels=c(as.character(sample[,1])))+ ??coord_trans(x='log2')+ ??scale_color_continuous(low='dodgerblue4',high='lightskyblue')+ ??ylab('Gene')+xlab('Hazard ratios')+ ??labs(color='P value',title='')+ ??theme(panel.grid.major =element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(),axis.line = element_line(colour = 'black'))+ ? ??theme(axis.text=element_text(colour='black',size=14))+ ? ??theme(legend.text=element_text(size=14))+ ??theme(legend.title=element_text(size=15))+ ??theme(axis.title=element_text(colour='black',size=14)) 最終我們將得到下面形式的森林圖 ?這就是小編對于森林圖的初步探索,更多細節(jié)美化部分還需要大家多多建議呀~
|
|