16

你如何使用 hist() 在 R 中绘制相对频率?

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

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

我想查看具有以下相对频率的直方图:

.5 表示 0 到 1,

.33 为 1 至 2,

0.166 为 2 到 3。

4

5 回答 5

14

您可以尝试histogram()在 lattice 中使用该功能

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

默认为百分比。

于 2010-11-01T21:49:33.277 回答
8

我在 CRAN 上的HistogramToolsPlotRelativeFrequency()包中添加了一个新函数,它采用直方图对象并生成相对频率直方图。这现在可从 R-Forge 获得,并将在 HistogramTools 0.3 中用于下一个CRAN版本。

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

x<-runif(100)
h<-hist(x, plot=F)
h$counts <- h$counts / sum(h$counts)
plot(h, freq=TRUE, ylab="Relative Frequency")

或者,简单地说

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

在此处输入图像描述

于 2013-10-10T17:54:11.123 回答
6
hist(a, breaks=c(0, 1, 2, 3), freq=FALSE, right=FALSE)
于 2010-11-01T22:04:57.503 回答
2

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

h<-hist(yourdata)
plot(h$mids,100*h$counts/sum(h$counts),type="h")
于 2011-06-19T10:07:31.110 回答
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")
于 2013-08-06T16:23:10.870 回答