我试图在 R 中实现的情节类型似乎被称为移动分布、欢乐情节或山脊线情节:
Stackoverflow 中已经有一个问题,其记录的答案解释了如何使用 ggplot 进行操作:如何用 R 重现这个移动分布图?
但是,出于学习目的,我试图仅使用基本 R 图(没有格子,没有 ggplot,没有任何绘图包)来实现相同的目的。
为了开始,我生成了以下假数据来玩:
set.seed(2020)
shapes <- c(0.1, 0.5, 1, 2, 4, 5, 6)
dat <- lapply(shapes, function(x) rbeta(1000, x, x))
names(dat) <- letters[1:length(shapes)]
然后使用mfrow
我可以实现这一点:
par(mfrow=c(length(shapes), 1))
par(mar=c(1, 5, 1, 1))
for(i in 1:length(shapes))
{
values <- density(dat[[names(dat)[i]]])
plot(NA,
xlim=c(min(values$x), max(values$x)),
ylim=c(min(values$y), max(values$y)),
axes=FALSE,
main="",
xlab="",
ylab=letters[i])
polygon(values, col="light blue")
}
我得到的结果是:
显然,在这里使用mfrow
(或什至layout
)不够灵活,并且确实允许分布之间的重叠。
然后,问题是:如何仅使用基本 R 绘图函数来重现这种类型的绘图?