我想绘制以下直方图:
library(palmerpenguins)
library(tidyverse)
penguins %>%
ggplot(aes(x=bill_length_mm, fill = species)) +
geom_histogram() +
facet_wrap(~species)
对于每个直方图,我想为每个物种的平均值和标准差添加一个正态分布。当然,我知道在开始
ggplot
命令之前可以计算特定组的平均值和SD,但我想知道是否有更聪明/更快的方法来做到这一点。我已经尝试过:
penguins %>%
ggplot(aes(x=bill_length_mm, fill = species)) +
geom_histogram() +
facet_wrap(~species) +
stat_function(fun = dnorm)
但这只会在底部给我一条细线: 任何想法吗? 谢谢!
编辑 我想要重新创建的是来自Stata的这个简单命令: hist bill_length_mm, by(species) normal
它给了我这个:
![enter image description here](https://istack.dev59.com/VYuHb.webp)
dnorm(penguins$bill_length_mm)
- 你会注意到非常小的数字(大约是-300次方!)。我猜你需要先将它们分组,以便理解那个dnorm调用。四舍五入没有帮助,所以我认为这不仅仅是一个浮点问题。 - tjebo