ggplot2中的多层

时间:2018-10-21 15:15:23

标签: r ggplot2

我想用正态分布的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_vn1pnorm(seq(0, 3, by=.1), 1.5, 0.5), col=2)。这是一个问题,因为函数rnorm仅为我提供了函数值,而没有域上的值。我什至不知道rnorm是如何创建这些的,如果我查看该表,我只会看到函数值。但是,神奇的是,rnd_nv1的情节再次起作用了。

1 个答案:

答案 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()

enter image description here