R语言绘图布局调整:如何让密度图并列而非重叠?
问题解答
仅修改均值和标准差参数无法实现并列显示,必须调整绘图相关的代码部分。
原因说明
你当前的代码里,通过matplot(y1, type="l", add=TRUE)把第二个密度图直接叠加到第一个图的画布上,这才是导致重叠的核心原因——和数据的均值、标准差无关,哪怕你把均值改得相差很大,只要用add=TRUE,两个图还是会叠在同一块画布上。
实现并列显示的修改方案(Base R 新手友好版)
你需要先设置绘图布局,让R把画布分成多个区域,再分别绘制两个图。这里推荐用par(mfrow)来设置行列布局,以下是修改后的完整代码:
# 生成数据(均值和标准差可以按你的需求调整) x <- rnorm(1000, 1, 1) x1 <- rnorm(1000, -10, 1) # 保留你原有的统计量计算逻辑 quantile(x, 0.05) sum(x1 > quantile(x, 0.05))/length(x1) # 设置并列布局:1行2列,后续绘图会依次填充这两个区域 par(mfrow = c(1, 2)) # 绘制第一个数据的密度图(用density函数比直接取hist的density更直观) plot(density(x), main = "x的密度分布", col = "darkblue") # 绘制第二个数据的密度图 plot(density(x1), main = "x1的密度分布", col = "darkred") # 恢复默认的单图布局(避免影响后续绘图) par(mfrow = c(1, 1))
额外说明
如果你坚持想用hist的结果来绘图,需要注意两个直方图的区间(breaks)尽量一致,否则密度值的刻度可能不匹配,但对新手来说,用density()函数直接生成密度曲线会更简单易读。
内容的提问来源于stack exchange,提问作者user20417386
相关产品推荐
相关产品推荐

