【问题标题】:How to add arrows to a forest plot?如何在森林地块中添加箭头?
【发布时间】:2014-11-03 18:32:05
【问题描述】:

我会在森林图上添加两个箭头,以便将一篇论文发表到期刊上。这是metafor::forest的演示图:

require(metafor)
data(dat.bcg)
res <- rma(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg,
           slab=paste(author, year, sep=", "))
forest(res, cex=.8, order=order(dat.bcg$ablat), addfit=F)

我想要的是沿 x 轴添加两个箭头,例如(在红色框中):

有人知道怎么做吗?

【问题讨论】:

    标签: r plot


    【解决方案1】:

    一个想法是使用layout 将您的图分成两部分,并用新图替换 x 轴标签。

    ## define the layout matrix  
    ## 2 rows and 3 columns , the rectangle will be in the cell(2,2)
    layout(matrix(c(1,1,1,0,2,0), 2, 3, byrow = TRUE),
           heights=c(3,1),widths=c(1,2,1))
    ## define the margin since the default ones are usually not enough
    par(mar = rep(2, 4))
    
    ## your plot here 
    data(dat.bcg)
    res <- rma(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg,
               slab=paste(author, year, sep=", "))
    forest(res, cex=.8, order=order(dat.bcg$ablat), addfit=F,xlab='')
    
    ## here all the job 
    x <- y <- 2:8 
    ## dummy plot to define scales
    plot(x,y,type='n',axes=F,xlab='',ylab='')
    ## rectangle
    rect(2,4,8,8,border='red')
    ## arrows
    arrows(5.5,6,7,6)
    arrows(4.5,6,3,6)
    text(6,6,'A better',adj=c(0,1.5),col='blue')
    text(3.5,6,'B better',adj=c(0,1.5),col='green')
    ## x label
    text(5,3,'Risk Difference',cex=2)
    

    【讨论】:

    • 谢谢,@agstudy。红色矩形不是情节的一部分,只是一个指示符:D。
    • @DavidZ :) 我喜欢!我会在我的答案中保留它!
    • @agstudy 有没有办法使用 R forestplot 包将其添加到 Forestplot 中?我已经发布了一个关于这个stackoverflow.com/questions/61765729/…的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多