R 如何使用ggplot绘制此函数?
我有一个算法,它允许我通过给我x值从Beta分布中取样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来绘制它呢?这里的天平
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
}