考慮以下簡單示例:
# E. Musk in Grunheide
set.seed(22032022)
# generate random numbers
randomNumbers <- rnorm(n = 1000, mean = 10, sd = 10)
# empirical sd
sd(randomNumbers)
#> [1] 10.34369
# histogram
hist(randomNumbers, probability = TRUE, main = "", breaks = 50)
# just for illusatration purpose
###
# empirical density
lines(density(randomNumbers), col = 'black', lwd = 2)
# theortical density
curve(dnorm(x, mean = 10, sd = 10), col = "blue", lwd = 2, add = TRUE)
###

由
uj5u.com熱心網友回復:
這是一個ggplot解決方案。首先計算mean和sd,并將值保存在不同的向量中。然后使用ifelse陳述句將值分類為“范圍內”和“范圍外”,fill它們具有不同的顏色。
藍線代表您問題中所述的正態分布,黑線代表我們正在繪制的直方圖的密度圖。
library(ggplot2)
set.seed(22032022)
# generate random numbers
randomNumbers <- rnorm(n=1000, mean=10, sd=10)
randomNumbers_mean <- mean(randomNumbers)
randomNumbers_sd <- sd(randomNumbers)
ggplot(data.frame(randomNumbers = randomNumbers), aes(randomNumbers))
geom_histogram(aes(
fill = ifelse(
randomNumbers > randomNumbers_mean randomNumbers_sd |
randomNumbers < randomNumbers_mean - randomNumbers_sd,
"Outside range",
"Within range"
)
),
binwidth = 1, col = "gray")
geom_density(aes(y = ..count..))
stat_function(fun = function(x) dnorm(x, mean = 10, sd = 10) * 1000,
color = "blue")
labs(fill = "Data")

由
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/450632.html
