iris %>%
slice(c(1, 2, 51, 52, 101, 102)) %>%
gt::gt()Módulo práctico de ITA
(Grupo M)
Uno de los mejores (que dices!?, el MEJOR!!!) sistema gráfico del MUNDO.
R tiene varios sistemas gráficos, pero usaremos ggplot2 porque ahora mismo es el estándar
ggplot2 es un paquete de R para producir gráficos estadísticos.
Bueno, en realidad es todo un ecosistema. Mira sus extensiones [aquí].
irisEn estas slides usaremos iris, unos datos que vienen con R: no hay que cargarlos, ya están ahí
Son las medidas de 150 flores de lirio (iris en inglés) de 3 especies: setosa, versicolor y virginica (50 de cada)
Tienen 5 variables: el largo y el ancho del sépalo (Sepal.Length, Sepal.Width) y del pétalo (Petal.Length, Petal.Width), en cm, y la especie (Species)
¿Te acuerdas de slice()? Así vemos un par de flores de cada especie:
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 7.0 | 3.2 | 4.7 | 1.4 | versicolor |
| 6.4 | 3.2 | 4.5 | 1.5 | versicolor |
| 6.3 | 3.3 | 6.0 | 2.5 | virginica |
| 5.8 | 2.7 | 5.1 | 1.9 | virginica |
gráfico de puntos
se representan 3 variables:
Sepal.Length en el eje X
Petal.Length en el eje Y
Species en el color de los puntos
Importante para entender ggplot2 [ 🌟 ]
Un gráfico tiene 3 componentes principales:
los datos que se van a representar (ggplot() )
un conjunto de propiedades estéticas asociadas a variables del conjunto de datos. Por ejemplo, la posición en el eje X está asociada a la variable Sepal.Length, el color de los puntos está asociado a los valores de la variable Species. ( aes() )
el elemento geométrico que se va a representar. En nuestro caso son puntos (geom_point() ), pero podrían haber sido las líneas (geom_line() ) o …
#> 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
#- Fíjate: sólo hay 2 variables en aes() --
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point()
#- Fíjate: ahora usamos geom_line() --
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_line()
#- Fíjate: ahora usamos 2 geom_xx() --
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point() + geom_smooth()
#- Fíjate: ahora hay argumentos dentro de geom_point(). Uno de ellos es `color` --
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(color = "red", size = 2, alpha = 0.2)Ya tenemos las primeras ideas sobre ggplot2, ahora se trata de profundizar un poco para que podamos tener más control y flexibilidad al hacer nuestros gráficos.
Es importante que veas que estas 3 expresiones hacen el mismo gráfico:
Bueno, sí ¿Y qué más da? Pues importa y muuuuccho.
Esto nos va a dar mucha flexibilidad/control a nuestros gráficos. Lo veremos
geom_line() no sabe qué datos usar: iris solo se ha indicado dentro de geom_point(), no en ggplot()aes()? [ 🌟 ]Mapear (dentro de aes()): el color depende de una variable → ggplot2 crea una leyenda
size dentro y fuera de aes()Mapear (dentro de aes()): el tamaño depende de una variable (aquí, la especie) → ggplot2 crea una leyenda
SÍ!!!! en las siguientes slides haremos gráficos de líneas, de puntos (X-Y) y de barras. Y ya no con iris, sino con los datos de gapminder
Si no puedes esperarte ve a la R Graph Gallery o a la galería de extensiones de ggplot2
para hacer otros gráficos tendremos que usar otros geom_xx()
Por ejemplo:
geom_line()geom_bar()geom_col()geom_density()geom_path()geom_map()geom_raster()geom_rug()Todo lo que hemos visto, en un solo gráfico:
1ggplot(data = iris,
2 aes(x = Sepal.Length,
3 y = Petal.Length)) +
4 geom_point(aes(color = Species),
5 size = 3)ggplot(), valen para todos los geoms
+
color dentro de aes(), el color depende de una variable
size fuera de aes(), el tamaño es un valor fijo, el mismo para todos los puntos
Para hacer otros tipos de gráficos usaremos otros geom_xx(): geom_line(), geom_col(), … Lo veremos en las siguientes slides