fbpx

En esta entrada veremos cómo unir varías geometrías en r con ggplot2.

Plantilla básica de ggplot2

Esta plantilla tiene que ver con la estructura de las gráficas en ggplot2. Esta estructura tendría la siguiente forma

En primer lugar, tenemos la función ggplot que es la que utilizamos para graficar. Por otro lado estarían los datos y el mapping que es donde van los datos que vamos a utilizar y los elementos visuales.

Luego utilizamos el símbolo de más para concatenar con otras opciones como en este caso vamos a ver las geometrías.

Quería mostrarte esta plantilla o este modelo para hacer gráficas porque lo que vamos a hacer después es tomar diferentes geometrías y sumarlas una arriba de otra para poder concatenar o superponer diferentes gráficos.

Iniciar R y ggplot2 en RStudio

Muy bien ahora sí vamos a R ahora con nuestra sesión de Rstudio ya abierta lo primero que vamos a hacer es cargar ggplot2. Recuerda que si no tienes instalado el paquete puedes ver la entrada en donde instalamos paquetes y vemos ejemplos. Utilizamos el siguiente código

install.packages('ggplot2')
library(ggplot2)

Para los datos vamos a utilizar los datos de iris que son datos de flores que se utilizan mucho en machine learning y para hacer algunos modelos de prueba. Para cargarlos hacemos:

data("iris")
head(iris)

Podemos ver las primeras filas o datos que tiene en este caso vamos a tener variables o información sobre el lenght y el width que serían la longitud y el ancho de él sepal y el pétalo que sería el tallo y el pétalo de distintas flores.

En este caso tenemos la especie que para estos datos que son setosa, virginica y versicolor.

Caso1: gráficos de puntos y líneas

Vamos a empezar llamando la función ggplot con los datos igual a iris por otro lado y el siguiente código

Vamos a empezar llamando la función ggplot con los datos igual a iris por otro lado y el siguiente código

ggplot(data = iris,
       mapping = aes(x = Sepal.Length,
                     y = Sepal.Width,
                     color = Species)) +
  geom_point() +
  geom_smooth(size = 2)

Obtenemos la siguiente gráfica

Caso 2: gráficos de varías líneas

Para hacer primero el gráfico de una línea vamos a tomar solamente los datos que correspondan a un tipo de flor para eso vamos a utilizar en la opción data de la función ggplot el dataset iris pero vamos a escoger el subconjunto de todas las flores que tengan especie igual a setosa con el siguiente código:

ggplot(data = iris[iris$Species == 'setosa',],
       mapping = aes(x = 1:50,
                     y = Petal.Width)) +
  geom_line()

En el mapping escribimos 1:50 para ver el comportamiento sobre una variable. Luego en y la información de los pétalos. Para hacer la línea tenemos que sumar o agregar la geometría de geom_line. Esto resulta

Para superponer las tres lineas hacemos el siguiente cambio en el código

ggplot(data = iris,
       mapping = aes(x = rep(1:50,3),
                     y = Petal.Width,
                     color = Species)) +
  geom_line()

No se toma ningún subconjunto de los datos y en la x pedimos hacer una repetición del 1:50 con la función rep()

Caso 3: gráfica de boxplot con puntos

Un gráfico de cajas o un diagrama de cajas o un o una box plot es un tipo de gráfica que sirve para estudiar la distribución de una variable con respecto a distintas categorías por ejemplo.

En este caso, estamos viendo las especies que son setosa virginica y versicolor y estamos estudiando la variable petal.width o el ancho del pétalo.

Con una boxplot podemos estudiar la distribución de ese ancho con respecto a cada una de las tres variables. Veamos en una gráfica con el código:

# boxplot con puntos
ggplot(data = iris,
       mapping = aes(x = Species,
                     y = Petal.Width,
                     fill = Species)) +
  geom_boxplot() +
  geom_jitter()

Con la opción fill hacemos el relleno de las cajas. Utilizamos geom_boxplot() para agregar la capa visual del diagrama de cajas. La función geom_jitter() agrega los puntos sobre las cajas

Conclusión

Ahora tiene más dominio de las geometrías en ggplot2. Espero que te haya gustado y hayas aprendido de esta entrada no olvides compartir para que otras personas puedan aprender ggplot2

Te mando un saludo donde quiera que estes!