fbpx

En esta entrada, veremos cómo hacer gráficas de barras en R. Al final, habrás visto:

Esta entrada, viene acompañada con código en R para practicar. Haz click aquí para verlo. Así, puedes copiar el código de la página y pegarlo en tu sesión de RStudio para practicar.

Qué son las gráficas de barras?

Son un tipo de visualización que utiliza variables categóricas con barras rectangulares con alturas proporcionales al valor de la medida que representa.

Las gráficas de barras son importantes porque son muy fáciles de entender y permite llevar información muy rápido a las personas que la ven. Es de las primeras gráficas que te recomiendo dominar si te interesa aprender más sobre visualización de datos.

Ejemplos de gráficas de barras

Podemos utilizar R para hacer gráficas de barras. Vamos a ver cómo hacerlas con R base Graphics y con ggplot2. Si no sabes cómo instalar ggplot2 puedes ver esta entrada donde aprendemos a instalar paquetes en R.

Datos de la práctica

Para la práctica vamos a utilizar datos que ya vienen precargados en R. Los datos se llaman mtcars, son datos con información de coches o carros. Cosas como los caballos de fuerza, tipo de motor, cilindros, y esas cosas… Para cargar estos datos en R, tenemos que llamar a la función

data("mtcars")

Esto crea un dataframe con los datos que podemos mirar en el entorno de variable o en la consola. Muy bien! ahora a hacer gráficas.

Cómo hacer una gráfica de barras en R?

Para hacer una gráfica de barras utilizando R Base utilizamos la función barplot()

En este caso, la función debe que contener como argumento una tabla donde esté la variable categórica y las alturas. Para utilizar los datos necesitamos agrupar la información por cilindros. Para eso utilizamos la función table sobre la columna cyl del dataframes. En R, el código sería

barplot(table(mtcars$cyl))

Algo que podemos hacer es poner las barras verticales con la opción

barplot(table(mtcars$cyl),
        horiz = 'TRUE',
        col = 'green',
        border = 'red',
        main = 'grafica de barras',
        sub = 'subtitulo',
        xlab = 'cilindros',
        ylab = 'cantidad')

Recuerda siempre poner nombre a los ejes

Cómo hacer gráficas de barras en ggplot2

Podemos hacer lo mismo con el paquete ggplot2. En mi opinión las gráficas se ven un poco mejores para presentar aunque la información es exactamente la misma. El código es diferente comparado con base graphics.

ggplot(data = mtcars,
       mapping = aes(x = factor(cyl))) +
  geom_bar() +
  coord_flip()

Después de cargar la librería llamamos a la función ggplot() y le pasamos como argumento los datos y el mapping. En el mapping incluimos solo la variable de cilindros como factor ahora tenemos que agregar la capa de geometrías. para este caso utilizamos geom_bar() y con esto obtenemos una gráfica de barras estilo ggplot2

3 tipos de gráficas con ggplot2

En estas gráficas hay dos variables. Una son los cilindros y la otra es el motor. Una separada por las barras y otra por los colores. Dependiendo del caso puede ser que te convenga utilizar alguno de estos tipos de gráficas.

Lo que quiero mostrarte es que en ggplot2 puedes dominar las tres gráficas cambiando solo un valor de la función, es muuuy sencillo y practico

Para hacer la gráfica separada por colores tenemos que agregar en el mapping el relleno, que es fill, como la variable con la que vamos a separar, en este caso sería factor de gear. vamos a guardar esta gráfica base en una variable que llamaremos p y luego vamos a agregar lo demás a p ya vas a ver como esto nos hace la vida más facil porque no tendremos que escribir tanto código.

# guardando grafica en variable
p <- ggplot(data = mtcars,
            mapping = aes(x = factor(cyl),
                          fill = factor(gear)))

Ahora para hacer el primer tipo tenemos que agregar en geom_bar la opción position=»stack», stat=»count». muy bien!

Para el segundo tipo solo tenemos que cambiar en position el stack por dodge y con esto ahora vemos como se separan las barras en tres separadas

Por último, para la gráfica de porcentaje cambiamos la opción position por fill y ya está.

# stacked bar chart
p + geom_bar(position = 'stack', stat = 'count')

# dogde bar chart
p + geom_bar(position = 'dodge', stat = 'count')

# stacked + percent barchart
p + geom_bar(position = 'fill', stat = 'count')

Por eso me gusta ggplot2, hace muy sencillo trabajar con distintos tipos de gráfica, fíjate como usando la variable p para la gráfica pudimos escribir el código de forma mucho más elegante y compacta, no tuvimos que escribir todo varias veces…

Chévere! Espero que puedas hacer más barras! ahora a entrenar!

Comparte este video con tus compañeros que no sabes hacer gráficas de barras en ggplot2.

Te mando un saludo donde quiera que estés!