相关疑难解决方法(0)

从R中的直方图获取频率值

我知道如何绘制直方图或其他频率/百分比相关表.但是现在我想知道,如何在表格中使用这些频率值以便在事后使用.

我有一个庞大的数据集,现在我绘制一个设置binwidth的直方图.我想提取对应于每个binwidth的频率值(即y轴上的值)并将其保存在某处.

有人可以帮我这个吗?谢谢!

r frequency histogram

38
推荐指数
3
解决办法
5万
查看次数

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
查看次数

将曲线拟合到直方图 ggplot

我知道我可以通过以下方式将密度曲线拟合到 ggplot 中的直方图。

df = data.frame(x=rnorm(100))
ggplot(df, aes(x=x, y=..density..)) + geom_histogram() + geom_density()
Run Code Online (Sandbox Code Playgroud)

直方图

但是,我希望我的 y 轴是频率(计数)而不是密度,并保留适合分布的曲线。我怎么做?

r ggplot2

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

具有经验密度和 dnorm 函数的叠加直方图

我想将 ggplot 直方图(y 轴 = 计数)与经验密度曲线和正态密度曲线叠加。我试过:

library(ggplot2) 
set.seed(1234) 
v <- as_tibble(rnorm(1000, 10, 2.5)) 
ggplot(v, aes(x = value)) +
        geom_histogram(aes(y = ..density..), 
                       bins = 40,  colour = "black", fill = "white") +
        geom_line(aes(y = ..density.., color = 'Empirical'), stat = 'density') +     
        stat_function(fun = dnorm, aes(color = 'Normal'),
                         args = list(mean = 10, sd = 2.5)) +
        scale_colour_manual(name = "Colors", values = c("red", "blue"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但这具有 y 尺度的密度,并且我希望频率作为 y 轴。

我的第二次试验生成了以频率(计数)为 y 轴但仅以经验密度为基础的图。

library(ggplot2)
set.seed(1234)
v <- as_tibble(rnorm(1000, 10, 2.5))
b  <- …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
2122
查看次数

标签 统计

r ×5

ggplot2 ×4

histogram ×2

curve ×1

frequency ×1