How do you use hist to plot relative frequencies in R?

[亡魂溺海] 提交于 2019-11-29 12:08:08

问题


How do you use hist() to plot relative frequencies in R?

If I do the following, I will get a density plot, but I want a relative frequency plot:

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

I want to see a histogram with the following relative frequencies:

.5 for 0 to 1,

.33 for 1 to 2,

and .166 for 2 to 3.


回答1:


you can try using the histogram() function in lattice

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

defaults to percent.




回答2:


I've added a new function to the HistogramTools package on CRAN, PlotRelativeFrequency() which takes a histogram object and generates a relative frequency histogram plot. This is available now from R-Forge and will be in HistogramTools 0.3 for the next CRAN release.

Basically, you just need to make two modifications to the default histograms in R. First, you need to divide each count by the sum of all of the counts, and you need to replace the y-axis label to note that it is now plotting Relative Frequencies.

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

Or, simply

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




回答3:


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



回答4:


Not properly a traditional histogram...

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



回答5:


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")


来源:https://stackoverflow.com/questions/4073223/how-do-you-use-hist-to-plot-relative-frequencies-in-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!