R ggplot:在一个绘图上绘制多个函数

R ggplot:在一个绘图上绘制多个函数,r,ggplot2,R,Ggplot2,我有一项任务,就是用我的名为NoPodsWeight的数据绘制柱状图,它的密度和这段minNoPodsWeight和maxNoPodsWeight的正态分布。 我正在尝试: myframe <- read.csv(filepath, fileEncoding = "UTF-8", stringsAsFactors = FALSE) myframe <- myframe[rowSums(is.na(myframe)) <= 0,] nopodsweight &

我有一项任务,就是用我的名为NoPodsWeight的数据绘制柱状图,它的密度和这段minNoPodsWeight和maxNoPodsWeight的正态分布。 我正在尝试:

myframe <- read.csv(filepath, fileEncoding = "UTF-8", stringsAsFactors = FALSE)
myframe <- myframe[rowSums(is.na(myframe)) <= 0,]
nopodsweight <- myframe$NoPodsWeight
height <- myframe$Height
ggplot(myframe, aes(x = NoPodsWeight, y = ..density..)) + 
   geom_histogram(color="black", fill="white") + 
   geom_density(color = "blue") +
   stat_function(fun = dnorm, args = list(mean = mean(myframe$NoPodsWeight), sd = sd(myframe$NoPodsWeight)))
ggplot中是否有函数用于绘制正态分布,或者可能使用另一个函数,如lines中的函数?

您需要取..密度。。从ggplot层中删除,并将其专门放在geom_直方图层中。我没有下载并导入您的数据,但这里有一个关于mtcars的示例:


错误消息说你把你的状态映射到错误的图层了吗?;这是一个暗示。移动伊索=…密度。。特别适用于geom_直方图似乎可以使一切正常

ggplot(myframe, aes(x = NoPodsWeight)) + 
    geom_histogram(color="black", fill="white",
                 aes(y = ..density..)) + 
 ## [... everything else ...]
ggplot(mtcars, aes(x = mpg)) +
  geom_histogram(aes(y = ..density..)) +
  geom_density(color = "blue") +
  stat_function(fun = dnorm, args = list(mean = mean(mtcars$mpg), sd = sd(mtcars$mpg)))
ggplot(myframe, aes(x = NoPodsWeight)) + 
    geom_histogram(color="black", fill="white",
                 aes(y = ..density..)) + 
 ## [... everything else ...]