分享

森林图之初体验

 yjt2004us 2019-06-30

森林图之初体验

最近小编在浏览文献的时候多次看到了森林图,心心念念想着怎样可以画出来,下面将绘制森林图的两种方法推荐给大家。

对于绘制森林图,我们需要准备的文件大体如下,主要包含基因名、p值、HR值和置信区间几个部分。

方法一:forestplot包

#相关R包加载

library(forestplot)

#数据处理

sample<>

tabletext1<>

tabletext2<>

tabletext3<>

tabletext4<>

tabletext5<>

tabletext<>

#绘制森林图

forestplot(labeltext=tabletext, #文本信息

           mean = round(sample[,3],3),##HR值

           lower = round(sample[,4],2),##95%置信区间

           upper = round(sample[,5],2),#95%置信区间

           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,#置信区间用线宽、高、型

           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)

#数据处理

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

最终我们将得到下面形式的森林图

 这就是小编对于森林图的初步探索,更多细节美化部分还需要大家多多建议呀~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多