Я не уверен, что вы хотите получить из такого сравнения. Прежде чем соединить два графика, я думаю, что у вашего кода могут быть некоторые проблемы: 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)
Это приведет к: 
Вы можете изменить bins
для регулировки высоты. Тем не менее, мы должны быть осторожны с интерпретацией разницы между двумя распределениями: одно - это распределение индивидов со средним = 0 и SD = 1 (нормальное распределение), а другое - распределение оценок населения с вероятностью 0,001 иразмер выборки 1е5.
ggplot(df1, aes(x=x)) +
geom_histogram(aes(y = ..density..), fill="red", bins = 15)+
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..), color = "green", fill="green", bins = 15)
