Articles

Histogramas en R

Posted on

En este artículo, aprenderás a utilizar la función hist() para crear histogramas en la programación de R con la ayuda de numerosos ejemplos.

El histograma se puede crear utilizando la función hist() en el lenguaje de programación R. Esta función toma un vector de valores para los que se traza el histograma.

Utilicemos el conjunto de datos incorporado airquality que tiene Mediciones diarias de la calidad del aire en Nueva York, de mayo a septiembre de 1973.Documentación de R.

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

Utilizaremos el parámetro de temperatura que tiene 154 observaciones en grados Fahrenheit.

Ejemplo 1: Histograma simple

Temperature <- airquality$Temphist(Temperature)

Histograma simple en programación R

Podemos ver arriba que hay 9 celdas con cortes igualmente espaciados. En este caso, la altura de una celda es igual al número de observaciones que caen en esa celda.

Podemos pasar parámetros adicionales para controlar el aspecto de nuestro gráfico. Puedes leer sobre ellos en la sección de ayuda ?hist.

Algunos de los más utilizados son, main para dar el título, xlab y ylab para proporcionar etiquetas a los ejes, xlim y ylim para proporcionar el rango de los ejes, col para definir el color, etc.

Además, con el argumento freq=FALSE podemos obtener la distribución de probabilidad en lugar de la frecuencia.

Ejemplo 2: Histograma con parámetros añadidos

# histogram with added parametershist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="darkmagenta",freq=FALSE)

Crear Histograma en R con parámetros como el color.

Nota que el eje y está etiquetado como densidad en lugar de frecuencia. En este caso, el área total del histograma es igual a 1.

Valor de retorno de hist()

La función hist() devuelve una lista con 6 componentes.

> h <- hist(Temperature)> h$breaks 55 60 65 70 75 80 85 90 95 100$counts 8 10 15 19 33 34 20 12 2$density 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444 0.026143791 0.015686275 0.002614379$mids 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5$xname "Temperature"$equidist TRUEattr(,"class") "histogram"

Vemos que se devuelve un objeto de clase histogram que tiene:

  • breakslos lugares donde se producen las rupturas,
  • countsel número de observaciones que caen en esa celda,
  • densityla densidad de celdas, mids-los puntos medios de las celdas,
  • xname-el nombre del argumento x y
  • equidist-un valor lógico que indica si las rupturas están igualmente espaciadas o no.

Podemos utilizar estos valores para su posterior procesamiento.

Por ejemplo, en el siguiente ejemplo utilizamos los valores de retorno para colocar los recuentos en la parte superior de cada celda utilizando la función text().

Ejemplo 3: Usar los valores de retorno del histograma para las etiquetas usando text()

h <- hist(Temperature,ylim=c(0,40))text(h$mids,h$counts,labels=h$counts, adj=c(0.5, -0.5))

Histograma con valor de retorno de texto

Definiendo el número de rupturas

Con el argumento breaks podemos especificar el número de celdas que queremos en el histograma. Sin embargo, este número es sólo una sugerencia.

R calcula el mejor número de celdas, teniendo en cuenta esta sugerencia. A continuación se muestran dos histogramas sobre los mismos datos con diferente número de celdas.

Ejemplo 4: Histograma con diferentes rupturas

hist(Temperature, breaks=4, main="With breaks=4")hist(Temperature, breaks=20, main="With breaks=20")

Histograma de R con ruptura

En la figura anterior vemos que el número real de celdas trazadas es mayor que el que habíamos especificado.

También podemos definir puntos de ruptura entre las celdas como un vector. Esto permite trazar un histograma con intervalos desiguales. En este caso, el área de la celda es proporcional al número de observaciones que caen dentro de esa celda.

Ejemplo 5: Histograma con anchura no uniforme

hist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="chocolate",border="brown",breaks=c(55,60,70,75,80,100))

Histograma R con diferentes anchuras

.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *