7.1 Elementos
Para crear gráficos en ggplot2
se requieren los siguientes elementos:
- Datos
- Capas
- Escalas
- Sistema de coordenadas
- Faceting
- Temas
Estos elementos se incluyen por medio de funciones y argumentos que se explicarán a continuación.
7.1.1 Base
Existen tres componentes básicos en ggplot2
:
data
Dataframe de datos a graficar.aes
aesthetic mappings. Mapeo de las variables del conjunto de datos y la propiedades visuales a valores estéticos de la gráfica.geoms
Al menos una capa con objetos geométricos que describan como tratar cada observación.
Para entender el lenguaje, usaremos el conjunto de datos pre cargado mpg
que tiene información sobre el consumo de combustible en modelos populares de automóviles.
str(mpg)
## Classes 'tbl_df', 'tbl' and 'data.frame': 234 obs. of 11 variables:
## $ manufacturer: chr "audi" "audi" "audi" "audi" ...
## $ model : chr "a4" "a4" "a4" "a4" ...
## $ displ : num 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
## $ year : int 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
## $ cyl : int 4 4 4 4 6 6 6 4 4 4 ...
## $ trans : chr "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
## $ drv : chr "f" "f" "f" "f" ...
## $ cty : int 18 21 20 21 16 18 18 18 16 20 ...
## $ hwy : int 29 29 31 30 26 26 27 26 25 28 ...
## $ fl : chr "p" "p" "p" "p" ...
## $ class : chr "compact" "compact" "compact" "compact" ...
Capa principal
ggplot()
ayuda definir la capa principal de los datos a mapear y los atributos estéticos principales.
En este caso definimos los datos fuente data = mpg
y se agregan los valores estéticos de los ejes x = displ
y y = hwy
.
ggplot(data = mpg, mapping = aes(x = displ, y = hwy))
Esta gráfica muestra la capa principal en la que el eje x muestra el desplazamiento del motor en litros (displ
)
summary(mpg$displ)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.600 2.400 3.300 3.472 4.600 7.000
y el eje y el rendimiento de gasolina por millas en carretera (hwy
).
summary(mpg$hwy)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 12.00 18.00 24.00 23.44 27.00 44.00
ggplot2
es el plano cartesiano.
Sobre esta capa principal es posible agregar más capas. En particular, se agregará una capa de objetos geométricos.
Capa de objetos geométricos
Ahora, buscamos hacer un gráfico de dispersión, por lo que es necesario agregar una capa de objetos geométricos que mapee cada observación como un punto con la función geom_point()
.
Layers
Con el signo+
agregamos capas al gráfico.
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point()
En resumen, producimos una gráfica de dispersión definida por los componentes:
- Datos: dataframe
data = mpg
. - Mapeo estético:
aes(x = displ
yy = hwy)
. - Objeto geométrico:
+ geom_point()
.
7.1.2 Colores, formas y tamaños
Para agregar variables adicionales a la gráfica se pueden usar más valores estéticos como: color, forma y tamaño.
aes()
.
Siguiendo el ejemplo del gráfico de dispersión anterior, ahora se quiere incluir la variable clase de automóvil (class
) como un valor estético de color.
table(mpg$class)
##
## 2seater compact midsize minivan pickup subcompact
## 5 47 41 11 33 35
## suv
## 62
ggplot(mpg, aes(x = displ, y = hwy,
color = class)) +
geom_point()
Esto le da un color a cada punto u observación dependiendo de la clase de automóvil al que pertenece. La leyenda del lado derecho indica que color representa cada valor de la variable class
.
El mapeo de los atributos estéticos depende del tipo de variable, las variables categóricas se mapean a distintas escalas que las variables continuas:
Categórica | Continua | |
---|---|---|
Color | Arcoiris de colores | Gradiente de colores |
Tamaño | Escala discreta de tamaños | Mapeo lineal entre el radio y el valor |
Forma | Distintas formas | No aplica |