R 如何使用ggplot绘制此函数?

R 如何使用ggplot绘制此函数?,r,ggplot2,R,Ggplot2,我有一个算法,它允许我通过给我x值从Beta分布中取样 xx <- c () num <- 0 for (j in 1:100) { U <- 2;X <- 0; while (U > dbeta (X ,4 ,2) / 8) { X <- runif (1) U <- runif (1) num <- num + 1 } xx [j] <- X } 但是我怎样才能用ggplot来绘制它呢?这里的天平

我有一个算法,它允许我通过给我x值从Beta分布中取样

xx <- c ()
num <- 0
for (j in 1:100) {
  U <- 2;X <- 0;
  while (U > dbeta (X ,4 ,2) / 8) {
    X <- runif (1)
    U <- runif (1)
    num <- num + 1
  }
  xx [j] <- X
}
但是我怎样才能用ggplot来绘制它呢?这里的天平似乎不起作用

ggplot(data.frame(xx), aes(xx)) + geom_histogram() + stat_function(fun = dbeta, args = c(4, 2)) 


要使线条与直方图匹配,它必须是密度的直方图,而不是计数的直方图,默认值是计数(箱)。
我还改变了颜色和背景

ggplot(data.frame(xx), aes(xx)) + 
  geom_histogram(aes(y = ..density..),
                 color = 'darkgrey', fill = 'lightgrey', bins = 8) + 
  stat_function(fun = dbeta, args = c(4, 2), color = 'red') +
  theme_bw()

数据生成代码

通过设置RNG种子,以可复制的方式生成数据

set.seed(2020)
n <- 100
xx <- numeric(n)
num <- 0
for (j in 1:n) {
  U <- 2;X <- 0;
  while (U > dbeta (X ,4 ,2) / 8) {
    X <- runif (1)
    U <- runif (1)
    num <- num + 1
  }
  xx[j] <- X
}
set.seed(2020年)
n使用
geom\u直方图(aes(y=…密度…),bins=8)
set.seed(2020)
n <- 100
xx <- numeric(n)
num <- 0
for (j in 1:n) {
  U <- 2;X <- 0;
  while (U > dbeta (X ,4 ,2) / 8) {
    X <- runif (1)
    U <- runif (1)
    num <- num + 1
  }
  xx[j] <- X
}