我想用正态分布的cdf覆盖经验性cdf的图。我只能在不使用ggplot的情况下使代码正常工作。
rnd_nv1 <- rnorm(1000, 1.5, 0.5)
plot(ecdf(rnd_nv1))
lines(seq(0, 3, by=.1), pnorm(seq(0, 3, by=.1), 1.5, 0.5), col=2)
要使ggplot正常工作,我需要一个数据框,例如连接rnd_vn1
和pnorm(seq(0, 3, by=.1), 1.5, 0.5), col=2)
。这是一个问题,因为函数rnorm
仅为我提供了函数值,而没有域上的值。我什至不知道rnorm
是如何创建这些的,如果我查看该表,我只会看到函数值。但是,神奇的是,rnd_nv1
的情节再次起作用了。
答案 0 :(得分:1)
以下绘制了两条线,但是它们重叠,因为它们几乎相等。
set.seed(1856)
x <- seq(0, 3, by = 0.1)
rnd_nv1 <- rnorm(1000, 1.5, 0.5)
dat <- data.frame(x = x, ecdf = ecdf(rnd_nv1)(x), norm = pnorm(x, 1.5, 0.5))
library(ggplot2)
long <- reshape2::melt(dat, id.vars = "x")
ggplot(long, aes(x = x, y = value, colour = variable)) +
geom_line()