在同一y轴上叠加三个曲线

问题描述 投票:0回答:2

我想用三个不同的sigma值覆盖正态分布的三个曲线。我已经做到了:

curve(dnorm(x, mean(x), sd(x)), col = 2, lwd = 2)
par(new = TRUE)
curve(dnorm(x, mean(x), sd(x)/2), col = 3, lwd = 2)
par(new = TRUE)
curve(dnorm(x, mean(x), sd(x)*2), col = 4, lwd = 2)

结果为enter image description here但是我只想使用一个y轴比例尺,因此这三个图在另一个y轴下方,而不是在相同的y轴比例上。我也想扩大x轴的范围,例如从-3到3。

r curve normal-distribution
2个回答
1
投票

首先通过设置plot参数type = "n"打开空白图形设备。然后add = TRUE 3条曲线。

plot(c(0, 1), c(0, 3), type = "n", xlab = "", ylab = "")
curve(dnorm(x, mean(x), sd(x)), col = 2, lwd = 2, add = TRUE)
curve(dnorm(x, mean(x), sd(x)/2), col = 3, lwd = 2, add = TRUE)
curve(dnorm(x, mean(x), sd(x)*2), col = 4, lwd = 2, add = TRUE)

enter image description here


0
投票

您可以使用yaxtxaxt从图形中删除y轴。

curve(dnorm(x, mean(x), sd(x)), col = 2, lwd = 2,ylab="My y axis name")
par(new = TRUE)
curve(dnorm(x, mean(x), sd(x)/2), col = 3, lwd = 2,yaxt='n',xaxt='n',ylab="")
par(new = TRUE)
curve(dnorm(x, mean(x), sd(x)*2), col = 4, lwd = 2,yaxt='n',xaxt='n',ylab="")

给予,

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.