sábado, 2 de mayo de 2009

R: Gráficos de Barras

El presente capítulo intentará exponer, de forma clara, cómo diseñar gráficos de barras en R.

Los gráficos de barras son suficientemente flexibles para ser adaptados a situaciones donde el trabajo gráfico ha tenido poco éxito, como lo es el análisis de datos categóricos.

Para el diseño y creación de este tipo de diagramas, se emplea la función: barplot() ya definida en R.

Para ver su potencial, vamos a usarla con un ejemplo de aplicación, un estudio hecho a 20 alumnos de una clase para determinar su grupo sanguíneo:

Grupo Sanguíneo
fi
A6
B4
AB
1
0
9


Para almacenarlos en R, existen varios métodos, en este caso, almacenaremos en un vector llamado fi, los datos numéricos de la tabla anterior:

> fi <- c(6, 4, 1, 9)

Y posteriormente, le asignaremos el Grupo Sanguíneo al vector fi mediante la función names():

> names(fi) <- c("A", "B", "AB", "0")

Si usamos ahora la función barplot() con los datos anteriores obtenemos:


Y como suele ser habitual en las funciones de R, éstas, se pueden personalizar para que su representación sea la requerida.

Para tal propósito, usaremos los argumentos que acepta la función barplot(), los más característicos son los siguientes:
  • height: Puede ser un vector o matriz de valores que se emplearán para la representación de las barras del diagrama. Si el argumento es un vector, el diagrama se compone de una secuencia de barras rectangulares con una altura determinada por los valores del propio vector. En cambio, si la altura es una matriz y el argumento besides es FALSE entonces, al lado de cada barra del gráfico corresponde a una columna de altura. Si este argumento es una matriz y el argumento besides es TRUE, entonces los valores de cada columna se yuxtaponen en lugar de apilarlos.
  • width: Argumento opcional que determina la anchura de las barras.
  • space: Para fijar el espacio entre barras, como una fracción del ancho promedio de éstas. Puede especificarse con un sólo número o un número por barra.
  • names.arg: Un vector de nombres para colocarlos debajo de cada barra o grupo de barras. Si se omite, entonces los nombres son tomados de los atributos de nombres que estén contenidos en el objeto especificado en el argumento height.
  • legend.txt: Un vector de texto para construir una leyenda para el gráfico. Sólo es útil si el argumento height es una matriz, en cuyo caso las leyendas corresponderán a sus filas.
  • beside: Un valor lógico. Si es FALSE las columnas del argumento height serán representadas por barras apiladas y si es TRUE entonces, serán representadas por barras yuxtapuestas.
  • horiz: Un valor lógico. Si es FALSE las barras son dibujadas verticalmente. Por defecto es TRUE, por lo tanto, las barras se representan verticalmente.
  • col: Para especificar un vector de colores para las barras.
  • border: Para indicar el color a ser usado en los bordes de las barras.
  • main, sub: Para titular y subtitular el gráfico.
  • xlab: Para dar nombre al eje X.
  • ylab: Para dar nombre al eje Y.
  • xlim: Para delimitar el rango de valores en el eje X.
  • ylim: Para delimitar el rango de valores en el eje Y.
  • axes: Argumento lógico. Si es TRUE, dibuja el correspondiente eje.
  • plot: Argumento lógico. Si es FALSE no se dibuja el gráfico.

Para probar algunos de estos argumentos, vamos a ponerle un título: Estudio del Grupo Sanguíneo en 20 Alumnos, vamos a dimensionar el eje Y [0, 10] y ponerle una etiqueta en el eje X: Grupo Sanguíneo y al eje Y: fi.

> barplot(fi, main="Estudio del Grupo Sanguíneo en 20 Alumnos", ylim=c(0,10), xlab="Grupo Sanguíneo", ylab="fi")



Y por último, vamos a ponerle un color a cada barra:

> barplot(fi, main="Estudio del Grupo Sanguíneo en 20 Alumnos", ylim=c(0,10), xlab="Grupo Sanguíneo", ylab="fi", col=c(1, 2, 3, 4))




Como hemos podido comprobar en el transcurso de este capítulo, el diseño de diagramas de barras es bastante sencillo con la función barplot().

Los argumentos, para la personalización de dicha función presentados en este capítulo, no son los únicos, ya que también acepta los argumentos típicos de la edición gráfica, por ello, se recomienda emplear la ayuda para ampliar detalles:

> ?par

Y por supuesto y para concluir, se recomienda que se emplee la ayuda para profundizar sobre las funciones expuestas en este capítulo.

4 comentarios:

Vladi dijo...

hola, me podrias decir como se puede hacer un histograma combinado con un diagrama de barras..osea un grafico combinado donde salgan esos dos tipos de diagrama?
gracias,saludos =)

enoc dijo...

no se que hacer en esto....Si usamos ahora la función barplot() con los datos anteriores obtenemos:...ahi me e quedado no e pasado de ai si me pueden ayudar agradecere muchop

Manuel Caballero dijo...

Buenas enoc:

No entiendo tu mensaje, si sigues los pasos que se indican en este capitulo obtendrás lo que se expone.

¿No sabes cómo representar los datos? Más abajo está detallado:

> barplot(fi)

Un saludo y gracias por tu comentario.

Anónimo dijo...

gracias XD