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í].
Primeras ideas para empezar a familiarizarnos con ggplot2
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: volvemos a tener 3 variables en aes() --
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) +
geom_point()
#- 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
#- las estéticas X e Y son necesarias
#- para hacer un gráfico de puntos
ggplot(data = iris,
aes(x = Sepal.Length,
y = Petal.Length)) +
#- el elemento geométrico: puntos
geom_point() +
#- color dentro de aes asociada a Species
geom_point(aes(color = Species)) +
#- color fuera de aes
geom_point(color = "purple") SÍ!!!! pero aún falta un poco, hemos de ver más cosas (y sí, usando iris).
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()
Como puedes imaginar, aún tenemos que ver más elementos de ggplot2: los títulos y leyendas, los ejes, el tema, coordenadas, etc… vamos a ello!!
Ya hemos presentado los principales elementos de los gráficos hechos con ggplot2, pero es evidente que un gráfico tiene más elementos.
Lógicamente, hay que conocerlos un poco para poder ajustar los gráficos a nuestras necesidades y mejorar su calidad.
Veremos algo de los siguientes elementos:
Será en las siguientes slides
Un gráfico de ggplot2 tiene 3 componentes: los datos (ggplot()), las estéticas asociadas a variables (aes()) y el elemento geométrico (geom_xx())
Los elementos del gráfico se van añadiendo con +
aes() puede ir en ggplot(), y entonces vale para todos los geoms, o dentro de un geom, y entonces vale solo para ese geom
Dentro de aes() una estética se asocia a una variable (aes(color = Species)); fuera de aes() se le da un valor fijo (color = "purple")
geom_point() admite las estéticas x, y, color, size, shape, fill y alpha
Para hacer otros tipos de gráficos usaremos otros geom_xx()