R语言绘制森林图

看了一下网上,大概有三种方法
第一种:最麻烦,先用Excel画左边,然后用ps加右边,非常麻烦;
第二种:用现成的生信工具,貌似最方便,但是数据录入的格式和我手上的格式不一样,输出格式也是无法自定义,而且文章还没发表,担心数据传到网上会有泄露的风险;
第三种:用编程实现,应该比较靠谱,有R,有python,按理我应该用后者,但是现成的例子大多数是R的,虽然没造过,但应该不麻烦
3.1:用survminer包,该包是生物信息学中画图最常用的包,包含函数ggforest,就是我们要用的森林图函数。这个貌似需要元素数据统计成一个model再玩
3.2:forestplot,可以用结果直接画,就选它。
参考这里:http://www.sci666.net/48223.html
官方https://cran.r-project.org/web/packages/forestplot/forestplot.pdf

准备工作

下载R,安装
https://cran.r-project.org/
Windows版本,不大80多M
貌似界面不友好,顺便下一个RStudio,安装

打开R,运行这个
install.packages(“forestplot”)
第一次要装这个玩意。
数据在excel里面
install.packages(“xlsx”)
发现报错
运行
install.packages(“rJava”)
install.packages(“xlsxjars”)
install.packages(“xlsx”)
然后发现需要JDK
百度安装64位版本

实操代码

#一个是画森林图的包,一个是加载excel的包
library(forestplot)
library(xlsx)

#这里标题行不加进来
fdata <- read.xlsx2("D:/Article/forestfinal.xlsx",1,header = FALSE)
head(fdata)

attach(fdata)                   
#绘制森林图
# value <- 1
# result <- format(value, nsmall = 1)
# print(result)
forestplot(labeltext=as.matrix(fdata[,1:4]),#共有4列额外文本要显示
           graph.pos=3,#设置图出现在第几列
           mean=as.numeric(fdata$X5),#这里的列名务必要和加载后的列名一样,因为没有表头,有很多例子用的V5
           #如果统计结果里面没有均值,那么可以自己算:lower+(upper-lower)/2
           lower=as.numeric(fdata$X6),#这里要转一下类型
           upper=as.numeric(fdata$X7),
           is.summary = c(T,T,F,F,T,F,F,T,F,F,T,F,F,T,F,F,T,F,F,F),#对于汇总行设置为T,则加粗显示,注意这里标题行算第一行
           xticks=c(0.5,1.0,2.0,4.0,8.0),#设置X轴刻度线
           xticks.digitals = 3,#未解决,不能设置显示小数,例如8.0
           zero = 1,#参考线竖线的x坐标
           lwd.zero = 2,#参考线竖线粗细
           lineheight = unit(10,'mm'),#设置行间距,避免标题两行字重合
           ci.vertices = TRUE,#设置显示置信区间两端的两个小竖线
           col=fpColors(box="black",line="black")#设置方块和置信横线的颜色
           )

有没有人知道如何设置X轴显示小数点?

你可能感兴趣的:(杂项,R语言,森林图,forestplot)