如何绘制比较正态分布和二项分布R的图?

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

我必须绘制这种类型的图,但是我不知道该怎么做。我必须绘制这些函数的图。正常:

library(tidyverse)
tibble(x = sort(rnorm(1e5)),
       cumulative = cumsum(abs(x)/sum(abs(x)))/2.5) %>%
  ggplot(aes(x)) + 
  geom_histogram(aes(y = ..density..), bins = 500)+
  geom_density(color = "red")+
  geom_line(aes(y = cumulative), color = "navy")+
  scale_y_continuous(sec.axis = sec_axis(~.*2.5, name = "cumulative density"))

和二项式:

library(tidyverse)
set.seed(10)
tibble(x = sort(rbinom(1e5,1e5, 0.001))) %>%
  ggplot(aes(x)) + 
  geom_histogram(aes(y = ..density..), bins = 90)+
  geom_density(color = "red")

而且我不明白如何在[0,1]范围内的一个图上比较这两个函数。也许我必须改变情节。但是无论如何我都无法在特定范围内添加两个图。也许有人知道该怎么做?

r
2个回答
0
投票

您可以保存数据,只需再次使用ggplot()将新的geom_和新的数据以及新的x变量添加到绘图中。然后,您的图将被添加到上一个图。但是,xlim(范围)似乎太小。

Silke

data1 <- tibble(x = sort(rnorm(1e5)),
                 cumulative = cumsum(abs(x)/sum(abs(x)))/2.5)

                set.seed(10)
data2 <-          tibble(x = sort(rbinom(1e5,1e5, 0.001))) 

ggplot(data = data1, aes(x)) + 
  geom_histogram(aes(y = ..density..), bins = 500)+
  geom_density(color = "red")+
  geom_line(aes(y = cumulative), color = "navy")+
  scale_y_continuous(sec.axis = sec_axis(~.*2.5, name = "cumulative density")) +
  geom_histogram(data = data2,aes(x = x,y = ..density..), bins = 90)+
  geom_density(color = "green") + xlim(0,1)


0
投票

我不确定您想从这种比较中得到什么。在将两个图形放在一起之前,我认为您的代码可能存在一些问题:1)您的cumsum(abs(x)/sum(abs(x)))可能不正确,我将其替换为cumsum(abs(10-x)/sum(abs(10-x)))。其次,对于二项式分布,rbinom(1e5,1e5, 0.001)将给您数字而不是概率,我将其替换为rbinom(1e5,1e5, 0.001)/1e5

library(tidyverse)
df1<-tibble(x = sort(rnorm(1e5)),
       cumulative = cumsum(abs(10-x)/sum(abs(10-x)))/2.5)
df2<-tibble(x1 = sort(rbinom(1e5,1e5, 0.001)/1e5)) 

  ggplot(df1, aes(x=x)) + 
  geom_histogram(aes(y = ..density..), bins = 500)+
  geom_density(color = "red")+
  geom_line(aes(y = cumulative), color = "navy")+
  scale_y_continuous(sec.axis = sec_axis(~.*2.5, name = "cumulative density")) + 
    geom_histogram(data = df2, aes(x = x1, y = ..density..), bins = 90) 

这将产生:enter image description here

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