你如何使用hist来绘制R中的相对频率?

时间:2010-11-01 21:30:39

标签: r histogram

如何使用hist()绘制R?

中的相对频率

如果我执行以下操作,我将获得密度图,但我想要一个相对频率图:

a <- c(0,0,0,1,1,2)
hist(a, freq=FALSE)

我希望看到具有以下相对频率的直方图:

.5表示0到1,

.33 for 1 to 2,

和.166为2到3。

5 个答案:

答案 0 :(得分:13)

您可以尝试使用格子中的histogram()函数

a <- c(0,0,0,1,1,2)
library(lattice)
histogram(a)

默认为百分比。

答案 1 :(得分:7)

我在CRAN PlotRelativeFrequency()上添加了一个新函数,x<-runif(100) h<-hist(x, plot=F) h$counts <- h$counts / sum(h$counts) plot(h, freq=TRUE, ylab="Relative Frequency") 包含直方图对象并生成相对频率直方图。现在可从R-Forge获得,并将在HistogramTools 0.3中用于下一个HistogramTools版本。

基本上,您只需要对R中的默认直方图进行两次修改。首先,您需要将每个计数除以所有计数的总和,并且需要替换y轴标签以注意它现在正在绘制相对频率。

install.packages("HistogramTools", repos="http://R-Forge.R-project.org")
library(HistogramTools)
PlotRelativeFrequency(hist(x, plot=F))

或者,简单地

{{1}}

enter image description here

答案 2 :(得分:6)

hist(a, breaks=c(0, 1, 2, 3), freq=FALSE, right=FALSE)

答案 3 :(得分:2)

不正确的传统直方图...

h<-hist(yourdata)
plot(h$mids,100*h$counts/sum(h$counts),type="h")

答案 4 :(得分:1)

histo<-hist(yourvariable)
barplot(histo$counts/n,col="white",space=0)->bp   # n=length(yourvariable)
axis(1,at=c(bp),labels=histo$mids)
title(ylab="Relative Frequency",xlab="Your Variable Name")