R中的多重绘图

时间:2015-01-18 12:56:24

标签: r plot

亲爱的stackoverflow用户,

我需要制作一个图表,其中包含已经复杂的多个图表。我用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

1 个答案:

答案 0 :(得分:0)

我不清楚是否要将箱线图放在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 

布局图看起来像:

enter image description here

类似的方法可以与xy图中的箱线图一起使用。