相关疑难解决方法(0)

ggplot2:具有正常曲线的直方图

我一直在尝试用ggplot 2在我的直方图上叠加一条正常曲线.

我的公式:

data <- read.csv (path...)

ggplot(data, aes(V2)) + 
  geom_histogram(alpha=0.3, fill='white', colour='black', binwidth=.04)
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事:

+ stat_function(fun=dnorm)  
Run Code Online (Sandbox Code Playgroud)

....没有改变任何事情

+ stat_density(geom = "line", colour = "red")
Run Code Online (Sandbox Code Playgroud)

...在x轴上给了我一条直线红线.

+ geom_density()  
Run Code Online (Sandbox Code Playgroud)

对我不起作用,因为我想将我的频率值保持在y轴上,并且不需要密度值.

有什么建议?

提前感谢任何提示!

找到解决方案

+geom_density(aes(y=0.045*..count..), colour="black", adjust=4)

curve r ggplot2

33
推荐指数
4
解决办法
6万
查看次数

ggplot2直方图,密度曲线总和为1

绘制具有对于非标准化数据总和为1的密度曲线的直方图是非常困难的.关于此问题已有很多问题,但他们的解决方案都不适用于我的数据.需要有一个简单的解决方案.我找不到一个有效的简单解决方案的答案.

一些例子:

解决方案仅适用于标准化的正常数据 ggplot2:使用密度曲线叠加直方图

具有离散数据且无密度曲线 ggplot2密度直方图,宽度= .5,vline和居中条位置

没有答案 使用自定义分档使用ggplot2覆盖密度和直方图

在我的数据上,密度不总和为1 在ggplot2中创建密度直方图?

我的数据ggplot2密度直方图与自定义bin边缘不总和为1

这里用例子详细解释,但密度不是1,我的数据 "密度"曲线覆盖在直方图上,其中垂直轴是频率(即计数)或相对频率?

-

一些示例代码:

#Example code
set.seed(1)
t = data.frame(r = runif(100))

#first we try the obvious simple solution that should work
ggplot(t, aes(r)) + 
  geom_histogram() + 
  geom_density()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以,显然密度不等于1.

#maybe geom_histogram needs a ..density.. ?
ggplot(t, aes(r)) + 
  geom_histogram(aes(y = ..density..)) + 
  geom_density()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它确实改变了一些东西,但不正确.

#maybe geom_density needs a ..density.. too ?
ggplot(t, aes(r)) + 
  geom_histogram(aes(y = ..density..)) + 
  geom_density(aes(y = ..density..))
Run Code Online (Sandbox Code Playgroud)

那里没有变化.

#maybe binwidth …
Run Code Online (Sandbox Code Playgroud)

r histogram ggplot2

11
推荐指数
1
解决办法
6339
查看次数

标签 统计

ggplot2 ×2

r ×2

curve ×1

histogram ×1