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=FALSE
或 new=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 图中的箱线图。
尊敬的 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=FALSE
或 new=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 图中的箱线图。