在 R 中实现具有不同绘图宽度的多个绘图

  • 本文关键字:绘图 实现 r plot
  • 更新时间 :
  • 英文 :


我想在单个绘图窗口中创建多个绘图,其中每个绘图的面板宽度与每个绘图的xlim成正比。

目前我使用:

layout(matrix(c(1:8,10,9), 5, 2, byrow = FALSE), widths=2)       
layout.show(10)

基本上,我希望width单独应用于每个情节,而不是应用于列中的所有情节。最好的方法是什么?

layout只有在图可以在规则网格上排列时才有效,但它们不需要具有相同的宽度。

layout(
  matrix(
    c(1,1,2,3,3,2,4,5,5,6,6,6), 
    nc=3, byrow = TRUE
  )
)
layout.show(6)

如果你想要一些非常不规则的东西,你可以使用 par(fig=...,new=TRUE) .

plot.new()
par(mar=c(2,2,1,1))
k <- 4
f <- function() 
  plot(rnorm(20),rnorm(20), xlab="", ylab="", main="", las=1)
for(i in 1:k) {
  par(fig=c(0,i/(k+1), (i-1)/k, i/k), new=TRUE)
  f()
  par(fig=c(i/(k+1),1, (i-1)/k, i/k), new=TRUE)
  f()
}

最新更新