我有这个 ggplot

ggplot(data = ph, aes(x = index1)) + geom_density()

我想添加具有相同均值 (= 2.71) 和标准偏差 (= 0.61) 的正态分布。

我创建了正态分布:
nd1 <- rnorm(n = 100000, mean = 2.71), sd = 0.61)
nd1plot <- qplot(nd1, geom = "density") + theme_classic() +  ggtitle("Normalverteilung")

但现在我不知道如何将它添加到我现有的情节中。谁能帮我解决这个问题?

最佳答案

ggplot2stat_function() 用于这种事情,但我的解决方案以清晰的名义采用了更手动的方法。您没有提供数据示例,但您应该能够将 mtcars$mpg 替换为您想要的任何列或向量。

library(tidyverse) # Gives us ggplot2 and lots of other goodies

# Choose your variable of interest
dta <- mtcars$mpg %>%
  as_tibble() # USing a tibble instead of a dataframe makes the data more predictable

# Generate normal data based on dta
norm_data <-
  rnorm(
    n = length(dta),
    mean = mean(dta$value),
    sd = sd(dta$value)
  )

# Create the plot
ggplot(dta, aes(x = value)) +
  geom_density() +
  geom_density(aes(norm_data), color = "darkgray", linetype = "dashed") +
  theme_classic()

关于r - 将正态分布绘制到现有图中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40868904/

10-12 20:37