Capítulo 9 Gráficos en R
R es un lenguaje de programación y entorno computacional dedicado a la estadística que dispone de múltiples funciones diseñadas para la representación gráfica de datos.
Revisa la presentación completa aquí
9.1 Tipos de gráficos en R
Existe una gran variedad de gráficos que pueden utilizarse según el tipo de datos que se tengan.
9.2 Paqueterías para graficar en R
Existen diversas paqueterías en R que facilitan la creación de gráficos. Cada paquetería permite crear diversos tipos de gráficos.
9.3 Gráficos de base R
R cuenta con el paquete base de graphics para la construcción de gráficos. La función plot es la función básica que permite crear:
- Líneas
- Barras
- Boxplots
- Matrices de dispersión
9.4 Paletas de colores en R
Los colores son uno de los elementos esenciales de un gráfico. Forman parte de la estética y por tanto, los podemos utilizar tanto para representar variables, como para destacar elementos dentro de la visualización.
Aquí y aquí puedes revisar los colores disponibles en R que puedes usar en tus gráficas.
9.5 ggplot2
ggplot2 es una de las paqueterías más populares en R para crear una gran variedad de gráficos. ggplot2 es un sistema para la creación declarativa de gráficos basado en la gramática de gráficos. En esta gramática, se separan los elementos o las partes de un gráfico en diferentes capas o layers, y así es más fácil modificarlos.
ggplot2 funciona a través de la grámatica de gráficos donde se dan los datos, las variables que queremos a graficar y la geometría deseada.
Instalación de ggplot2
install.packages("tidyverse")
install.packages("ggplot2")Cargar la librería de trabajo
library(ggplot2)Importamos el set de datos que puedes descargar de aquí
datos <- read.csv("iris.csv")head(datos)## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
9.5.1 Scatterplots
Vamos a crear un gráfico ddel tipo scatterplot muy básico con ggplot2.
ggplot(datos, aes(x = Petal.Width, y = Petal.Length)) +
geom_point()
Ahora vamos a colorear todos los puntos utilizando geom_point(color). Para agregar las etiquetas de los ejes usamos labs() como se muestra a continuación.
ggplot(datos, aes(x = Petal.Width, y = Petal.Length)) +
geom_point(color="red")+
labs(x = "Ancho del petálo" ,y = "Longitud del petálo")
Con el argumento color coloreamos por especie de flor.
ggplot(datos, aes(x = Petal.Width, y = Petal.Length, color=Species)) +
geom_point()+
labs(x = "Ancho del petálo" ,y = "Longitud del petálo")
shape permite modificar la forma del punto. En este caso vamos a poner diferentes puntos según la especie de flor . Con ggtitle agregamos un título a nuestro gráfico.
ggplot(iris, aes(x = Petal.Width, y = Petal.Length, color=Species, shape=Species)) +
geom_point(size=3) +
theme_bw()+
labs(x = "Ancho del petálo" ,y = "Longitud del petálo")+
ggtitle("Set de datos iris")
Otra opción para modificar los colores es utilizando scale_colour_manual(). Con este argumento indicamos los colores que queremos usar para nuestro gráfico basados en la paleta de colores.
ggplot(iris, aes(x = Petal.Width, y = Petal.Length, color=Species)) +
geom_point()+
labs(x = "Ancho del petálo" ,y = "Longitud del petálo",
title = "Set de datos iris", subtitle = "Scatterplot")+
theme_grey()+
theme(legend.position = "top")+
scale_colour_manual(values=c("red", "blue", "green"))
9.5.2 RcolorBrewer
RcolorBrewer es una paquetería exclusiva de colores que podemos usar en nuestros gráficos.
install.packages("RColorBrewer")library(RColorBrewer)Conocer todas las paletas de colores disponibles en RColorBrewer.
display.brewer.all()
Vamos a elegir la paleta “Dark2” para personalizar nuestro gráfico. Usamos el argumento scale_colour_brewer() como se muestra a continuación
ggplot(iris, aes(x = Petal.Width, y = Petal.Length, color=Species)) +
geom_point()+
labs(x = "Ancho del petálo" ,y = "Longitud del petálo",
title = "Set de datos iris")+
theme_grey()+
theme(legend.position = "top")+
scale_colour_brewer(palette="Dark2")
9.5.3 Boxplots
R contiene varios sets de datos ya pre-cargados con los que podemos trabajar. Para conocer los sets disponibles usamos:
Para este ejercicio vamos a elegir el set de datos chickwts. La información de este set de datos se uso para medir y comparar la efectividad de varios suplementos alimenticios en la tasa de crecimiento de los pollos.
head(chickwts)## weight feed
## 1 179 horsebean
## 2 160 horsebean
## 3 136 horsebean
## 4 227 horsebean
## 5 217 horsebean
## 6 168 horsebean
Vamos a crear un boxplot básico.
ggplot(chickwts, aes(y = weight, x= feed)) +
geom_boxplot()+ggtitle("Box Plot of Weight")
theme() permite modificar varios elementos del gráfico. En esta ocasión lo usaremos para rotar las etiquetas del eje x.
ggplot(chickwts, aes(y = weight, x= feed)) +
geom_boxplot()+ggtitle("Box Plot of Weight")+
theme(text = element_text(size=10),
axis.text.x = element_text(angle=90, hjust=1))
Coloreamos el gráfico por tipo de alimentación que se le dio a los pollos.
ggplot(chickwts, aes(y = weight, x= feed, fill=feed)) +
geom_boxplot()+
ggtitle("Dataset chickwts")+
theme(text = element_text(size=10),
axis.text.x = element_text(angle=90, hjust=1))+
labs(subtitle = "Boxplot", y= "peso", x="alimento")