我无法将直方图绘制为pdf(概率)
我希望所有部分的总和等于1的面积,这样就可以更容易地比较数据集.出于某种原因,每当我指定中断(默认值为4或其他任何可怕的内容)时,它不再希望将箱子绘制为概率,而是将箱子绘制为频率计数.
hist(data[,1], freq = FALSE, xlim = c(-1,1), breaks = 800)
Run Code Online (Sandbox Code Playgroud)
我该怎么改变这一行呢?我需要一个概率分布和大量的箱子.(我有600万个数据点)
这是在R帮助中,但我不知道如何覆盖它:
频率逻辑; 如果为TRUE,则直方图图形是频率的表示,结果的计数分量; 如果为FALSE,则绘制概率密度,分量密度(使得直方图的总面积为1).当且仅当间隔是等距的(并且未指定概率)时,默认为TRUE.
谢谢
编辑:详情
嗯所以我的情节高于1,如果这是一个概率,这是相当混乱的.我现在看看它与bin宽度有什么关系.我或多或少想要让每个垃圾箱价值1点,同时仍然有很多垃圾箱.换句话说,除非直接在1.0并且所有其他箱都是0.0,否则箱高度不应高于1.0.就像现在一样,我有一个箱子可以在15.0左右形成一个驼峰
编辑:bin @Dwin中%的高度:那么如何绘制概率?我意识到由于x轴上的单位,积分仍然会给我1.0,但这不是我想要的.假设我有100分,其中5分落入第一个分区,那个分区应该是.05高度.这就是我要的.我做错了还有另一种方法吗?
我知道我有多少分.有没有办法将频率直方图中的每个bin计数除以这个数?
我可以在 R 中绘制相对频率直方图,使用lattice包:
a <- runif(100)
library(lattice)
histogram(a)
Run Code Online (Sandbox Code Playgroud)
我想在ggplot. 我试过
dt <- data.frame(a)
ggplot(dt, aes(x = a)) +
geom_bar(aes(y = ..prop..))+
scale_y_continuous(labels=percent)
Run Code Online (Sandbox Code Playgroud)
但它不是那样工作的。我应该在代码中更改什么?在图表之前计算相对频率对我来说不是一个选择。