R中的多重绘图

multiple plotting in R

尊敬的 Whosebug 用户,

我需要生成一个图表,将多个已经 "complex" plots.I 的图表组合在一起,生成一个带有 plot() 的图表,然后我在图表中添加一个水平箱线图。问题是我需要将其复制 12 次并将其保留在同一个图中。

# Example with only 2 plots: 

par(mfrow=c(1,2)) # Works for simple plots... but not here

#First plot
par(fig=c(0,1,0,1), new=FALSE)
plot(rnorm(100))  # Basic plot

par(fig=c(0,1,0,0.5), new=TRUE)
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE) # Boxplot below

# Second plot
par(fig=c(0,1,0,1), new=FALSE)
plot(rnorm(100))

par(fig=c(0,1,0,0.5), new=TRUE)
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE)

# end 

通常我会用 par(mfrow=c(3,4)) 来做,但在这种情况下,因为已经涉及到几个地块,所以它不起作用,我找不到解决这个问题的方法!此外,我不清楚如何处理这些 new=FALSEnew=TRUE... 非常欢迎任何帮助! :o) 提前非常感谢!

Jnop

我不清楚您是想将箱线图放在 xy 图内还是在 xy 图下方。假设它在下面,您可以使用 mfrow 和 mfg 将四个地块定位如下。

使用 mfrow 和 mfg 的解决方案

# Example with only 2 plots: 
plot.new()
par(mfrow=c(2,2)) 
#First plot
par(mfg=c(1,1))
plot(rnorm(100))  # Basic plot
par(mfg=c(2,1) )
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE) # Boxplot below
# Second plot
par(mfg=c(1,2) )
plot(rnorm(100))
par(mfg=c(2,2) )
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE)
# end 

如果您希望箱线图小于 xy 图,您可以使用如下布局:

#  Solution using layout
#First plot
plot.new()
#  define 3 rows; allocate xy plot to first 2 rows and boxplot to last row 
layout( matrix(c(1,1, 2, 3, 3, 4), nrow=3, ncol=2) )
 plot(rnorm(100))  # Basic plot
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE) # Boxplot below
# Second plot
plot(rnorm(100))
boxplot(rnorm(100), horizontal=TRUE, axes=FALSE)
# end 

布局图如下所示:

类似的方法可以用于 xy 图中的箱线图。