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

时间:2020-05-31 14:56:59

标签: r curve normal-distribution

我想用三个不同的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比例尺上。我也想扩大x轴的范围,例如从-3到3

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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