ggplot 应该如何等效于 R 中的 plot + lines?

How should be a ggplot equivalent of plot + lines in R?

使用 plotlines 我可以在 R 中的同一范围内重叠多个图。例如,我可以绘制数据的密度,然后在相同的范围内模拟密度分布剧情如下:

plot(density(mtcars$mpg), col = "red")
polygon(density(mtcars$mpg), col = "red")
x <- seq(0, 50, length=1000)
hxn <- dnorm(x,mean=mean(mtcars$mpg), sd = sd(mtcars$mpg))
lines(x,hxn, col="green")

获得

我怎样才能用ggplot做同样的事情(在同一个图中引入数据密度mtcars$mpg和模拟(x,hxn))? 我将从

开始
library(ggplot2)
ggplot(mtcars,aes(x=mpg))+geom_density(color = "red", fill = "red")+xlim(0,40)

但是我不知道如何叠加 x,hxn 数据。

谢谢!

你可以这样做:

ggplot(mtcars,aes(x=mpg))+
  geom_density(color = "red", fill = "red")+ 
  xlim(0,40) +
  stat_function(fun = dnorm, args = list(mean = mean(mtcars$mpg), sd = sd(mtcars$mpg)))