layout
在可以由 生成的函数的第四个示例中example(layout)
,我想将线图覆盖在来自正态分布的样本的条形图上。
我试过了lines()
,plot( , add=TRUE)
但没有运气。
我怎样才能做到这一点?还是我必须采取与使用不同的路线layout
?
问问题
290 次
1 回答
0
这是一种方法:
library(TeachingDemos)
x <- pmin(3, pmax(-3, stats::rnorm(50)))
y <- pmin(3, pmax(-3, stats::rnorm(50)))
xhist <- hist(x, breaks=seq(-3,3,0.5), plot=FALSE)
yhist <- hist(y, breaks=seq(-3,3,0.5), plot=FALSE)
top <- max(c(xhist$density, yhist$density))
xrange <- c(-3,3)
yrange <- c(-3,3)
nf <- layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), c(3,1), c(1,3), TRUE)
layout.show(nf)
par(mar=c(3,3,1,1))
plot(x, y, xlim=xrange, ylim=yrange, xlab="", ylab="")
par(mar=c(0,3,1,1))
bx.out <- barplot(xhist$density, axes=FALSE, ylim=c(0, top), space=0)
updateusr( bx.out[1:2], 0:1, xhist$mids[1:2], 0:1 )
xdens <- density(x)
lines(xdens$x, xdens$y, col='blue')
par(mar=c(3,0,1,1))
by.out <- barplot(yhist$density, axes=FALSE, xlim=c(0, top), space=0, horiz=TRUE)
updateusr( 0:1, by.out[1:2], 0:1, yhist$mids[1:2] )
ydens <- density(y)
lines(ydens$y, ydens$x, col='blue')
请注意从counts
到的更改,density
以便条形的“高度”与密度相匹配,并使用updateusr
来自 TeachingDemos 包来匹配坐标系。代替updateusr
你也可以指定和width
函数。xlim
barplot
于 2012-08-01T18:25:34.450 回答