亲爱的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=FALSE
或new=TRUE
......
任何帮助都会非常欢迎!! :O)
提前非常感谢!!
Jnop
答案 0 :(得分:0)
我不清楚是否要将箱线图放在xy图内或xy图下方。假设它在下面,您可以使用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图中的箱线图一起使用。