为了账号安全,请及时绑定邮箱和手机立即绑定

将密度曲线拟合成R中的直方图

/ 猿问

将密度曲线拟合成R中的直方图

慕森卡 2019-07-09 10:45:20

将密度曲线拟合成R中的直方图

R中是否有与直方图拟合曲线的函数?

假设你有下面的直方图

hist(c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4)))

它看起来很正常,但它是倾斜的。我想要拟合一个正常的曲线,是倾斜的,围绕这个直方图。

这个问题是相当基本的,但我似乎无法在互联网上找到R的答案。


查看完整描述

3 回答

?
一只萌萌小番薯

如果我正确理解了您的问题,那么您可能需要一个密度估计和直方图:

X <- c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4))hist(X, prob=TRUE)            
# prob=TRUE for probabilities not countslines(density(X))            
 # add a density estimate with defaultslines(density(X, adjust=2), lty="dotted")   
 # add another "smoother" density

稍后编辑很长时间:

下面是一个稍微打扮一下的版本:

X <- c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4))hist(X, prob=TRUE, col="grey")
# prob=TRUE for probabilities not countslines(density(X), col="blue", lwd=2)
 # add a density estimate with defaultslines(density(X, adjust=2), lty="dotted", col="darkgreen", lwd=2)


查看完整回答
反对 回复 2019-07-09
?
慕后森

这样的事情用ggplot 2很容易。

library(ggplot2)dataset <- data.frame(X = c(rep(65, times=5), rep(25, times=5), 
                            rep(35, times=10), rep(45, times=4)))ggplot(dataset, aes(x = X)) + 
  geom_histogram(aes(y = ..density..)) + 
  geom_density()

或者模仿Dirk的解的结果

ggplot(dataset, aes(x = X)) + 
  geom_histogram(aes(y = ..density..), binwidth = 5) + 
  geom_density()


查看完整回答
反对 回复 2019-07-09
?
慕沐林林

我就是这样做的:

foo <- rnorm(100, mean=1, sd=2)hist(foo, prob=TRUE)curve(dnorm(x, mean=mean(foo), sd=sd(foo)), add=TRUE)

一个额外的练习就是用ggplot 2软件包来做这件事.。


查看完整回答
反对 回复 2019-07-09

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信