2010-11-01 20 views
13

¿Cómo se usa hist() para trazar frecuencias relativas en R?¿Cómo se usa hist para trazar frecuencias relativas en R?

Si hago lo siguiente, voy a obtener una gráfica de densidad, pero quiero una parcela frecuencia relativa:

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

Quiero ver un histograma con las siguientes frecuencias relativas:

0.5 para 0 a 1,

0,33 por 1 a 2,

y 0,166 para 2 a 3.

+0

parecer, no se puede utilizar frec = VERDADERO con parcela = FALSO, por lo que esta es una buena pregunta con algunas buenas respuestas a continuación, gracias. – PatrickT

+0

Posible duplicación de la función [Use hist() en R para obtener porcentajes en oposición a las frecuencias sin procesar] (http://stackoverflow.com/questions/7324683/use-hist-function-in-r-to-get-percentages- as-oppos-to-raw-frequencies) – majom

Respuesta

13

puede intentar utilizar la función histogram() en celosía

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

defecto por ciento.

+1

Qué lástima que use un color tan feo como el predeterminado :) – zoltanctoth

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

adecuadamente un histograma tradicional ...

h<-hist(yourdata) 
plot(h$mids,100*h$counts/sum(h$counts),type="h") 
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") 
7

He añadido una nueva función para el paquete HistogramTools en CRAN, PlotRelativeFrequency() que toma un objeto de histograma y genera una frecuencia relativa diagrama de histograma. Esto está disponible ahora de R-Forge y estará en HistogramTools 0.3 para la próxima versión CRAN.

Básicamente, solo necesita hacer dos modificaciones a los histogramas predeterminados en R. Primero, debe dividir cada recuento por la suma de todos los recuentos, y debe reemplazar la etiqueta del eje y para observar que ahora está trazando Frecuencias Relativas.

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

O, simplemente

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

enter image description here

Cuestiones relacionadas