【问题标题】:R: plot grid objects using par(mfrow)R:使用 par(mfrow) 绘制网格对象
【发布时间】:2020-12-15 22:53:00
【问题描述】:

我想在同一个 png 上绘制网格对象和基础 R 对象。我正在使用的包(元)使用网格图形系统。

如果可能,我想为此使用 mfrow,因为这是我在其他地方使用的。

如果我绘图:

png("test.png",width=297,height=210,units="mm",res=300)
par(mfrow=c(2,2))
plot(1,1)
plot(1,1)
plot(1,1)
plot(1,1)
dev.off()

一切正常。

但是,如果我绘制:

library(meta)
m <- metaprop(4:1, c(10, 20, 30, 40))
png("test.png",width=297,height=210,units="mm",res=300)
par(mfrow=c(2,2))
plot(1,1)
forest(m,new=F)
plot(1,1)
forest(m,new=F)
dev.off()

情况不对,因为林地试图占据整个页面而不是被限制在角落。

提前感谢您的帮助

【问题讨论】:

    标签: r plot grid meta


    【解决方案1】:

    我敢打赌,它的行为类似于 heatmap() 图,请参阅 here

    帖子中解决方案的可能示例(未测试):

    --snip // 引文(Paul Murrell 博士)--

    library(gridGraphics) 
    grid.newpage() 
    pushViewport(viewport(0, .5, .5, .5, just=c("left", "bottom"))) 
    grid.echo(function() { heatmap(test) }, newpage=FALSE) 
    popViewport() 
    pushViewport(viewport(.5, 0, .5, .5, just=c("left", "bottom"))) 
    grid.echo(function() { heatmap(test) }, newpage=FALSE) 
    popViewport() 
    

    --剪辑--

    【讨论】:

      【解决方案2】:

      修改this answer,你可以将它们组合成一个情节,但我认为forest()的边距和设置需要优化,以便可以正确看到标题等:

      library(gridBase)
      library(gridExtra)
      
      layout(matrix(c(1,2),nrow=1),widths=c(1,3))
      par(mar=c(2.5,2.5,2.5,2.5))
      
      plot(1,1)
      
      plot.new()
      vps <- baseViewports()
      pushViewport(vps$figure)
      vp1 <-plotViewport()
      forest(m,new=FALSE)
      popViewport()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-19
        • 1970-01-01
        • 2011-10-26
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-31
        相关资源
        最近更新 更多