Gggraph:使用STAT_Function将正态分布曲线添加到现有直方图和分布层 [英] ggplot: adding normal distribution curve using stat_function to existing histogram and distribution layers

查看:0
本文介绍了Gggraph:使用STAT_Function将正态分布曲线添加到现有直方图和分布层的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要完成的任务: 1.绘制x=数据/y=密度直方图-完成 2.绘制给定数据集的分布曲线-完成 3.为该数据集绘制完美的正态分布曲线(红线)-问题我假设问题在第二个统计函数中。

无需任何准备即可运行代码:

data <- data.frame(c(runif(30,1,50)),c(runif(30,50,1)))
g.data <- data[,1]

graph <- ggplot(data, aes(g.data))
graph <- graph +
geom_histogram(aes(y = ..density..), binwidth = 2, fill = 'pink') +
labs(x = 'Data', y ='Density') +
stat_function(fun = dnorm, args = list(mean = mean(g.data, na.rm = T),
sd = sd(g.data, na.rm =T)), colour ='black', size =1) +
theme(legend.position = 'none') +
stat_function(fun = dnorm, colour = "red", args = list(mean = mean(g.data)))
graph

这是我得到的

这是我大概需要的,完美的规范。分发

推荐答案

正态分布有两个参数:平均值和标准差。在这里,您只提供了dNorm的平均值,因此它假定sd = 1

您提供的代码的更正版本为:

data <- data.frame(c(runif(30,1,50)))
ggplot(data, aes(data[,1])) +
    geom_histogram(aes(y = ..density..), binwidth = 2, fill = 'pink') +
    labs(x = 'Data', y = 'Density') +
    stat_function(fun = dnorm, 
        args = list(mean = mean(data[,1], na.rm = TRUE), 
                    sd = sd(data[,1], na.rm = TRUE)), 
        colour = 'black', size = 1) 

这篇关于Gggraph:使用STAT_Function将正态分布曲线添加到现有直方图和分布层的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆