[英]R: plot grid objects using par(mfrow)
我想 plot 网格对象和基础 R 对象在同一个 png 上。 我正在使用的 package(元)使用网格图形系统。
如果可能的话,我想使用 mfrow ,因为它是我在其他地方使用的。
如果我 plot:
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()
一切正常。
但是,如果我 plot:
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()
事情是不对的,因为森林地块试图占据整个页面而不是被限制在它们的角落。
在此先感谢您的帮助
我敢打赌,它的行为类似于 heatmap() 图,请参见此处。
帖子中解决方案的可能示例(未测试):
--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()
--剪辑--
修改这个答案,您可以将它们组合成一个 plot,但我认为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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.