我使用ggplot2绘制了密度曲线。在绘制数据后,我想在其顶部添加填充的法线密度图。
当前,我正在使用rnorm()创建数据,但这效率不高,并且在小型数据集上效果不佳。
library(tidyverse)
#my data that I want to plot
my.data = rnorm(1000, 3, 10)
#create the normal density plot to overlay the data
overlay.normal = rnorm(1000, 0, 5)
all = tibble(my.data = my.data, overlay.normal = overlay.normal)
all = melt(all)
ggplot(all, aes(value, fill = variable))+geom_density()
目标是绘制数据并在其上覆盖正态分布(填充)。像这样:
ggplot(my.data)+geom_density()+add_normal_distribution(mean = 0, sd = 5, fill = "red)
答案 0 :(得分:2)
这是一种使用stat_function
定义法线并将其绘制在ggplot调用中的方法。
ggplot(my.data %>% enframe(), aes(value)) +
geom_density(fill = "mediumseagreen", alpha = 0.1) +
stat_function(fun = function(x) dnorm(x, mean = 0, sd = 5),
color = "red", linetype = "dotted", size = 1)
答案 1 :(得分:2)