Ggplot … again

Inferencia Estadística 1

Preparativos

Comencemos por cargar el tidyverse y con ello tendremos a disposición la base de datos mpg

library(tidyverse)
mpg |> 
  knitr::kable()
manufacturer model displ year cyl trans drv cty hwy fl class
audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
audi a4 2.0 2008 4 auto(av) f 21 30 p compact
audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
audi a4 3.1 2008 6 auto(av) f 18 27 p compact
audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
audi a4 quattro 2.0 2008 4 manual(m6) 4 20 28 p compact
audi a4 quattro 2.0 2008 4 auto(s6) 4 19 27 p compact
audi a4 quattro 2.8 1999 6 auto(l5) 4 15 25 p compact
audi a4 quattro 2.8 1999 6 manual(m5) 4 17 25 p compact
audi a4 quattro 3.1 2008 6 auto(s6) 4 17 25 p compact
audi a4 quattro 3.1 2008 6 manual(m6) 4 15 25 p compact
audi a6 quattro 2.8 1999 6 auto(l5) 4 15 24 p midsize
audi a6 quattro 3.1 2008 6 auto(s6) 4 17 25 p midsize
audi a6 quattro 4.2 2008 8 auto(s6) 4 16 23 p midsize
chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 14 20 r suv
chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 11 15 e suv
chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 14 20 r suv
chevrolet c1500 suburban 2wd 5.7 1999 8 auto(l4) r 13 17 r suv
chevrolet c1500 suburban 2wd 6.0 2008 8 auto(l4) r 12 17 r suv
chevrolet corvette 5.7 1999 8 manual(m6) r 16 26 p 2seater
chevrolet corvette 5.7 1999 8 auto(l4) r 15 23 p 2seater
chevrolet corvette 6.2 2008 8 manual(m6) r 16 26 p 2seater
chevrolet corvette 6.2 2008 8 auto(s6) r 15 25 p 2seater
chevrolet corvette 7.0 2008 8 manual(m6) r 15 24 p 2seater
chevrolet k1500 tahoe 4wd 5.3 2008 8 auto(l4) 4 14 19 r suv
chevrolet k1500 tahoe 4wd 5.3 2008 8 auto(l4) 4 11 14 e suv
chevrolet k1500 tahoe 4wd 5.7 1999 8 auto(l4) 4 11 15 r suv
chevrolet k1500 tahoe 4wd 6.5 1999 8 auto(l4) 4 14 17 d suv
chevrolet malibu 2.4 1999 4 auto(l4) f 19 27 r midsize
chevrolet malibu 2.4 2008 4 auto(l4) f 22 30 r midsize
chevrolet malibu 3.1 1999 6 auto(l4) f 18 26 r midsize
chevrolet malibu 3.5 2008 6 auto(l4) f 18 29 r midsize
chevrolet malibu 3.6 2008 6 auto(s6) f 17 26 r midsize
dodge caravan 2wd 2.4 1999 4 auto(l3) f 18 24 r minivan
dodge caravan 2wd 3.0 1999 6 auto(l4) f 17 24 r minivan
dodge caravan 2wd 3.3 1999 6 auto(l4) f 16 22 r minivan
dodge caravan 2wd 3.3 1999 6 auto(l4) f 16 22 r minivan
dodge caravan 2wd 3.3 2008 6 auto(l4) f 17 24 r minivan
dodge caravan 2wd 3.3 2008 6 auto(l4) f 17 24 r minivan
dodge caravan 2wd 3.3 2008 6 auto(l4) f 11 17 e minivan
dodge caravan 2wd 3.8 1999 6 auto(l4) f 15 22 r minivan
dodge caravan 2wd 3.8 1999 6 auto(l4) f 15 21 r minivan
dodge caravan 2wd 3.8 2008 6 auto(l6) f 16 23 r minivan
dodge caravan 2wd 4.0 2008 6 auto(l6) f 16 23 r minivan
dodge dakota pickup 4wd 3.7 2008 6 manual(m6) 4 15 19 r pickup
dodge dakota pickup 4wd 3.7 2008 6 auto(l4) 4 14 18 r pickup
dodge dakota pickup 4wd 3.9 1999 6 auto(l4) 4 13 17 r pickup
dodge dakota pickup 4wd 3.9 1999 6 manual(m5) 4 14 17 r pickup
dodge dakota pickup 4wd 4.7 2008 8 auto(l5) 4 14 19 r pickup
dodge dakota pickup 4wd 4.7 2008 8 auto(l5) 4 14 19 r pickup
dodge dakota pickup 4wd 4.7 2008 8 auto(l5) 4 9 12 e pickup
dodge dakota pickup 4wd 5.2 1999 8 manual(m5) 4 11 17 r pickup
dodge dakota pickup 4wd 5.2 1999 8 auto(l4) 4 11 15 r pickup
dodge durango 4wd 3.9 1999 6 auto(l4) 4 13 17 r suv
dodge durango 4wd 4.7 2008 8 auto(l5) 4 13 17 r suv
dodge durango 4wd 4.7 2008 8 auto(l5) 4 9 12 e suv
dodge durango 4wd 4.7 2008 8 auto(l5) 4 13 17 r suv
dodge durango 4wd 5.2 1999 8 auto(l4) 4 11 16 r suv
dodge durango 4wd 5.7 2008 8 auto(l5) 4 13 18 r suv
dodge durango 4wd 5.9 1999 8 auto(l4) 4 11 15 r suv
dodge ram 1500 pickup 4wd 4.7 2008 8 manual(m6) 4 12 16 r pickup
dodge ram 1500 pickup 4wd 4.7 2008 8 auto(l5) 4 9 12 e pickup
dodge ram 1500 pickup 4wd 4.7 2008 8 auto(l5) 4 13 17 r pickup
dodge ram 1500 pickup 4wd 4.7 2008 8 auto(l5) 4 13 17 r pickup
dodge ram 1500 pickup 4wd 4.7 2008 8 manual(m6) 4 12 16 r pickup
dodge ram 1500 pickup 4wd 4.7 2008 8 manual(m6) 4 9 12 e pickup
dodge ram 1500 pickup 4wd 5.2 1999 8 auto(l4) 4 11 15 r pickup
dodge ram 1500 pickup 4wd 5.2 1999 8 manual(m5) 4 11 16 r pickup
dodge ram 1500 pickup 4wd 5.7 2008 8 auto(l5) 4 13 17 r pickup
dodge ram 1500 pickup 4wd 5.9 1999 8 auto(l4) 4 11 15 r pickup
ford expedition 2wd 4.6 1999 8 auto(l4) r 11 17 r suv
ford expedition 2wd 5.4 1999 8 auto(l4) r 11 17 r suv
ford expedition 2wd 5.4 2008 8 auto(l6) r 12 18 r suv
ford explorer 4wd 4.0 1999 6 auto(l5) 4 14 17 r suv
ford explorer 4wd 4.0 1999 6 manual(m5) 4 15 19 r suv
ford explorer 4wd 4.0 1999 6 auto(l5) 4 14 17 r suv
ford explorer 4wd 4.0 2008 6 auto(l5) 4 13 19 r suv
ford explorer 4wd 4.6 2008 8 auto(l6) 4 13 19 r suv
ford explorer 4wd 5.0 1999 8 auto(l4) 4 13 17 r suv
ford f150 pickup 4wd 4.2 1999 6 auto(l4) 4 14 17 r pickup
ford f150 pickup 4wd 4.2 1999 6 manual(m5) 4 14 17 r pickup
ford f150 pickup 4wd 4.6 1999 8 manual(m5) 4 13 16 r pickup
ford f150 pickup 4wd 4.6 1999 8 auto(l4) 4 13 16 r pickup
ford f150 pickup 4wd 4.6 2008 8 auto(l4) 4 13 17 r pickup
ford f150 pickup 4wd 5.4 1999 8 auto(l4) 4 11 15 r pickup
ford f150 pickup 4wd 5.4 2008 8 auto(l4) 4 13 17 r pickup
ford mustang 3.8 1999 6 manual(m5) r 18 26 r subcompact
ford mustang 3.8 1999 6 auto(l4) r 18 25 r subcompact
ford mustang 4.0 2008 6 manual(m5) r 17 26 r subcompact
ford mustang 4.0 2008 6 auto(l5) r 16 24 r subcompact
ford mustang 4.6 1999 8 auto(l4) r 15 21 r subcompact
ford mustang 4.6 1999 8 manual(m5) r 15 22 r subcompact
ford mustang 4.6 2008 8 manual(m5) r 15 23 r subcompact
ford mustang 4.6 2008 8 auto(l5) r 15 22 r subcompact
ford mustang 5.4 2008 8 manual(m6) r 14 20 p subcompact
honda civic 1.6 1999 4 manual(m5) f 28 33 r subcompact
honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
honda civic 1.6 1999 4 manual(m5) f 25 32 r subcompact
honda civic 1.6 1999 4 manual(m5) f 23 29 p subcompact
honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
honda civic 1.8 2008 4 manual(m5) f 26 34 r subcompact
honda civic 1.8 2008 4 auto(l5) f 25 36 r subcompact
honda civic 1.8 2008 4 auto(l5) f 24 36 c subcompact
honda civic 2.0 2008 4 manual(m6) f 21 29 p subcompact
hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r midsize
hyundai sonata 2.4 1999 4 manual(m5) f 18 27 r midsize
hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r midsize
hyundai sonata 2.4 2008 4 manual(m5) f 21 31 r midsize
hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r midsize
hyundai sonata 2.5 1999 6 manual(m5) f 18 26 r midsize
hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r midsize
hyundai tiburon 2.0 1999 4 auto(l4) f 19 26 r subcompact
hyundai tiburon 2.0 1999 4 manual(m5) f 19 29 r subcompact
hyundai tiburon 2.0 2008 4 manual(m5) f 20 28 r subcompact
hyundai tiburon 2.0 2008 4 auto(l4) f 20 27 r subcompact
hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subcompact
hyundai tiburon 2.7 2008 6 manual(m6) f 16 24 r subcompact
hyundai tiburon 2.7 2008 6 manual(m5) f 17 24 r subcompact
jeep grand cherokee 4wd 3.0 2008 6 auto(l5) 4 17 22 d suv
jeep grand cherokee 4wd 3.7 2008 6 auto(l5) 4 15 19 r suv
jeep grand cherokee 4wd 4.0 1999 6 auto(l4) 4 15 20 r suv
jeep grand cherokee 4wd 4.7 1999 8 auto(l4) 4 14 17 r suv
jeep grand cherokee 4wd 4.7 2008 8 auto(l5) 4 9 12 e suv
jeep grand cherokee 4wd 4.7 2008 8 auto(l5) 4 14 19 r suv
jeep grand cherokee 4wd 5.7 2008 8 auto(l5) 4 13 18 r suv
jeep grand cherokee 4wd 6.1 2008 8 auto(l5) 4 11 14 p suv
land rover range rover 4.0 1999 8 auto(l4) 4 11 15 p suv
land rover range rover 4.2 2008 8 auto(s6) 4 12 18 r suv
land rover range rover 4.4 2008 8 auto(s6) 4 12 18 r suv
land rover range rover 4.6 1999 8 auto(l4) 4 11 15 p suv
lincoln navigator 2wd 5.4 1999 8 auto(l4) r 11 17 r suv
lincoln navigator 2wd 5.4 1999 8 auto(l4) r 11 16 p suv
lincoln navigator 2wd 5.4 2008 8 auto(l6) r 12 18 r suv
mercury mountaineer 4wd 4.0 1999 6 auto(l5) 4 14 17 r suv
mercury mountaineer 4wd 4.0 2008 6 auto(l5) 4 13 19 r suv
mercury mountaineer 4wd 4.6 2008 8 auto(l6) 4 13 19 r suv
mercury mountaineer 4wd 5.0 1999 8 auto(l4) 4 13 17 r suv
nissan altima 2.4 1999 4 manual(m5) f 21 29 r compact
nissan altima 2.4 1999 4 auto(l4) f 19 27 r compact
nissan altima 2.5 2008 4 auto(av) f 23 31 r midsize
nissan altima 2.5 2008 4 manual(m6) f 23 32 r midsize
nissan altima 3.5 2008 6 manual(m6) f 19 27 p midsize
nissan altima 3.5 2008 6 auto(av) f 19 26 p midsize
nissan maxima 3.0 1999 6 auto(l4) f 18 26 r midsize
nissan maxima 3.0 1999 6 manual(m5) f 19 25 r midsize
nissan maxima 3.5 2008 6 auto(av) f 19 25 p midsize
nissan pathfinder 4wd 3.3 1999 6 auto(l4) 4 14 17 r suv
nissan pathfinder 4wd 3.3 1999 6 manual(m5) 4 15 17 r suv
nissan pathfinder 4wd 4.0 2008 6 auto(l5) 4 14 20 p suv
nissan pathfinder 4wd 5.6 2008 8 auto(s5) 4 12 18 p suv
pontiac grand prix 3.1 1999 6 auto(l4) f 18 26 r midsize
pontiac grand prix 3.8 1999 6 auto(l4) f 16 26 p midsize
pontiac grand prix 3.8 1999 6 auto(l4) f 17 27 r midsize
pontiac grand prix 3.8 2008 6 auto(l4) f 18 28 r midsize
pontiac grand prix 5.3 2008 8 auto(s4) f 16 25 p midsize
subaru forester awd 2.5 1999 4 manual(m5) 4 18 25 r suv
subaru forester awd 2.5 1999 4 auto(l4) 4 18 24 r suv
subaru forester awd 2.5 2008 4 manual(m5) 4 20 27 r suv
subaru forester awd 2.5 2008 4 manual(m5) 4 19 25 p suv
subaru forester awd 2.5 2008 4 auto(l4) 4 20 26 r suv
subaru forester awd 2.5 2008 4 auto(l4) 4 18 23 p suv
subaru impreza awd 2.2 1999 4 auto(l4) 4 21 26 r subcompact
subaru impreza awd 2.2 1999 4 manual(m5) 4 19 26 r subcompact
subaru impreza awd 2.5 1999 4 manual(m5) 4 19 26 r subcompact
subaru impreza awd 2.5 1999 4 auto(l4) 4 19 26 r subcompact
subaru impreza awd 2.5 2008 4 auto(s4) 4 20 25 p compact
subaru impreza awd 2.5 2008 4 auto(s4) 4 20 27 r compact
subaru impreza awd 2.5 2008 4 manual(m5) 4 19 25 p compact
subaru impreza awd 2.5 2008 4 manual(m5) 4 20 27 r compact
toyota 4runner 4wd 2.7 1999 4 manual(m5) 4 15 20 r suv
toyota 4runner 4wd 2.7 1999 4 auto(l4) 4 16 20 r suv
toyota 4runner 4wd 3.4 1999 6 auto(l4) 4 15 19 r suv
toyota 4runner 4wd 3.4 1999 6 manual(m5) 4 15 17 r suv
toyota 4runner 4wd 4.0 2008 6 auto(l5) 4 16 20 r suv
toyota 4runner 4wd 4.7 2008 8 auto(l5) 4 14 17 r suv
toyota camry 2.2 1999 4 manual(m5) f 21 29 r midsize
toyota camry 2.2 1999 4 auto(l4) f 21 27 r midsize
toyota camry 2.4 2008 4 manual(m5) f 21 31 r midsize
toyota camry 2.4 2008 4 auto(l5) f 21 31 r midsize
toyota camry 3.0 1999 6 auto(l4) f 18 26 r midsize
toyota camry 3.0 1999 6 manual(m5) f 18 26 r midsize
toyota camry 3.5 2008 6 auto(s6) f 19 28 r midsize
toyota camry solara 2.2 1999 4 auto(l4) f 21 27 r compact
toyota camry solara 2.2 1999 4 manual(m5) f 21 29 r compact
toyota camry solara 2.4 2008 4 manual(m5) f 21 31 r compact
toyota camry solara 2.4 2008 4 auto(s5) f 22 31 r compact
toyota camry solara 3.0 1999 6 auto(l4) f 18 26 r compact
toyota camry solara 3.0 1999 6 manual(m5) f 18 26 r compact
toyota camry solara 3.3 2008 6 auto(s5) f 18 27 r compact
toyota corolla 1.8 1999 4 auto(l3) f 24 30 r compact
toyota corolla 1.8 1999 4 auto(l4) f 24 33 r compact
toyota corolla 1.8 1999 4 manual(m5) f 26 35 r compact
toyota corolla 1.8 2008 4 manual(m5) f 28 37 r compact
toyota corolla 1.8 2008 4 auto(l4) f 26 35 r compact
toyota land cruiser wagon 4wd 4.7 1999 8 auto(l4) 4 11 15 r suv
toyota land cruiser wagon 4wd 5.7 2008 8 auto(s6) 4 13 18 r suv
toyota toyota tacoma 4wd 2.7 1999 4 manual(m5) 4 15 20 r pickup
toyota toyota tacoma 4wd 2.7 1999 4 auto(l4) 4 16 20 r pickup
toyota toyota tacoma 4wd 2.7 2008 4 manual(m5) 4 17 22 r pickup
toyota toyota tacoma 4wd 3.4 1999 6 manual(m5) 4 15 17 r pickup
toyota toyota tacoma 4wd 3.4 1999 6 auto(l4) 4 15 19 r pickup
toyota toyota tacoma 4wd 4.0 2008 6 manual(m6) 4 15 18 r pickup
toyota toyota tacoma 4wd 4.0 2008 6 auto(l5) 4 16 20 r pickup
volkswagen gti 2.0 1999 4 manual(m5) f 21 29 r compact
volkswagen gti 2.0 1999 4 auto(l4) f 19 26 r compact
volkswagen gti 2.0 2008 4 manual(m6) f 21 29 p compact
volkswagen gti 2.0 2008 4 auto(s6) f 22 29 p compact
volkswagen gti 2.8 1999 6 manual(m5) f 17 24 r compact
volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compact
volkswagen jetta 2.0 1999 4 manual(m5) f 21 29 r compact
volkswagen jetta 2.0 1999 4 auto(l4) f 19 26 r compact
volkswagen jetta 2.0 2008 4 auto(s6) f 22 29 p compact
volkswagen jetta 2.0 2008 4 manual(m6) f 21 29 p compact
volkswagen jetta 2.5 2008 5 auto(s6) f 21 29 r compact
volkswagen jetta 2.5 2008 5 manual(m5) f 21 29 r compact
volkswagen jetta 2.8 1999 6 auto(l4) f 16 23 r compact
volkswagen jetta 2.8 1999 6 manual(m5) f 17 24 r compact
volkswagen new beetle 1.9 1999 4 manual(m5) f 35 44 d subcompact
volkswagen new beetle 1.9 1999 4 auto(l4) f 29 41 d subcompact
volkswagen new beetle 2.0 1999 4 manual(m5) f 21 29 r subcompact
volkswagen new beetle 2.0 1999 4 auto(l4) f 19 26 r subcompact
volkswagen new beetle 2.5 2008 5 manual(m5) f 20 28 r subcompact
volkswagen new beetle 2.5 2008 5 auto(s6) f 20 29 r subcompact
volkswagen passat 1.8 1999 4 manual(m5) f 21 29 p midsize
volkswagen passat 1.8 1999 4 auto(l5) f 18 29 p midsize
volkswagen passat 2.0 2008 4 auto(s6) f 19 28 p midsize
volkswagen passat 2.0 2008 4 manual(m6) f 21 29 p midsize
volkswagen passat 2.8 1999 6 auto(l5) f 16 26 p midsize
volkswagen passat 2.8 1999 6 manual(m5) f 18 26 p midsize
volkswagen passat 3.6 2008 6 auto(s6) f 17 26 p midsize

Layers

Recuerden que:

  • ggplot trabaja por capas que añaden visuales al gráfico

  • los visuales se relacionan con las variables usando estéticas con el argumento aes

  • las estéticas pueden fijarse sin hacer referencia a variables como en color = "blue"

  • las estéticas pueden definirse en el llamado global a ggplot(..., aes(...)) o en cada geometría como en geom_point(..., aes(...))

Visualizando relaciones

Intentemos analizar la relación entre displ y hwy usando un scatterplot distinguiendo por la variable class

# class -> shape
ggplot(mpg, aes(x = displ, y = hwy, shape = class)) +
  geom_point()
Warning: The shape palette can deal with a maximum of 6 discrete values because more
than 6 becomes difficult to discriminate
ℹ you have requested 7 values. Consider specifying shapes manually if you need
  that many have them.
Warning: Removed 62 rows containing missing values or values outside the scale range
(`geom_point()`).

  • ggplot puede usar únicamente 6 formas distintas en el argumento shape
  • Investiga: Qué pasa si mapeas size = class o alpha = class

Resultados

ggplot(mpg, aes(x = displ, y = hwy, size = class)) +
  geom_point()
#> Warning: Using size for a discrete variable is not advised.

ggplot(mpg, aes(x = displ, y = hwy, alpha = class)) +
  geom_point()
#> Warning: Using alpha for a discrete variable is not advised.
  • Mapear una variable categórica, no ordenada como class a una estética ordenada (numéricamente) no tiene sentido: la variable no tiene un orden natural

Establecer la estética manualmente

Las figuras disponibles en ggplot2 están indexadas según este diagrama

R tiene 26 formas por defecto identificadas numéricamente. Algunas parecen estar duplicadas: por ejemplo, 0, 15, y 22 son cuadrados. La diferencia está en las estéticas fill y color. Las formas huecas (0–14) solo tienen color en el borde; las formas sólidas (15–20) tienen un color interno y las formas con relleno (21–25) tienen un trazo y un relleno de color fill.

R tiene 26 formas por defecto identificadas numéricamente. Algunas parecen estar duplicadas: por ejemplo, 0, 15, y 22 son cuadrados. La diferencia está en las estéticas fill y color. Las formas huecas (0–14) solo tienen color en el borde; las formas sólidas (15–20) tienen un color interno y las formas con relleno (21–25) tienen un trazo y un relleno de color fill.

Ejercicios

  1. Crea un gráfico de puntos de las variables hwy vs displ en el que los puntos sean tríangulos de color rosa sin bordes
  2. Qué hace la estética stroke? Con qué formas funciona? (Hint: use ?geom_point)
  3. Qué pasa si mapeamos una estética a algo que no sea una variable, por ejemplo aes(color = displ < 5)?
    Nota: No olvides definir también x, y.

Geometrías

  1. Cada geometría tiene una estética definida en aes(...) , también conocida como mapeos o mappings
  2. En caso de omitir el argumento, la estética se hereda del llamado a ggplot(...)
  3. No todas las estéticas tienen los mismos parámetros: si erramos, ggplot2 ignora los argumentos que no tienen relación con la geometría
  4. Una estética interesante es group que agrupa los renglones con los que calcula el objeto geométrico sin asociar esta agrupación a un trazo visual

Ejemplo

axis <- mpg |> 
  ggplot(aes(x = displ, y = hwy))   # Ejes

ungrouped <- axis + geom_smooth()   # Izquierda
grouped <- axis + geom_smooth(aes(group = drv))  # Centro
colored <- axis + geom_smooth(aes(color = drv))  # Derechga

Mapeos locales vs. mapeo global

1ggplot(mpg, aes(x = displ, y = hwy)) +
2  geom_point(aes(color = class)) +
3  geom_smooth()
1
El mapeo global especifica los ejes
2
El mapeo local especifica el color
3
geom_smooth( ) no se ve afectada por el mapeo de color porque es local a geom_point( )

Mapeos locales vs. mapeo global

ggplot(mpg, aes(x = displ, y = hwy)) + 
  geom_point() + 
  geom_point(
    data = mpg |> filter(class == "2seater"), 
1    color = "red"
  ) +
  geom_point(
    data = mpg |> filter(class == "2seater"), 
2    shape = "circle open", size = 3, color = "red"
  )
1
La segunda capa de geom_point( ) dibuja puntos rojos para los autos de clase 2seater
2
Esta capa añade los círculos externos para enfatizar la diferencia (mismos datos de la segunda capa)

La geometría es todo

Diferentes geometrías resaltan distintos aspectos de los datos. Las geometrías son la base de ggplot2 y una herramienta indispensable para el análisis de datos. Si las geometrías nativas de ggplot no funcionan, visitar aquí

Diferentes geometrías resaltan distintos aspectos de los datos. Las geometrías son la base de ggplot2 y una herramienta indispensable para el análisis de datos. Si las geometrías nativas de ggplot no funcionan, visitar aquí

Ejercicios

  1. Qué geometría usarías para trazar un gráfico de línea? Uno de caja y bigote? Una gráfica de áreas?
  2. Qué hace el argumento show.legend = FALSE en una geomtría dada? En qué circunstancia aplica?
  3. Qué hace el argumento se de la geom_smooth( )?

Ejercicios

Recree los siguientes gráficos

Ejercicios

Recree los siguientes gráficos

Facetas

ggplot(mpg, aes(x = displ, y = hwy)) + 
  geom_point() + 
1  facet_wrap(~cyl)
1
facet_wrap genera plots según el valor de la variable cyl. Consulten ?facet_wrap

…con más de una variable

ggplot(mpg, aes(x = displ, y = hwy)) + 
  geom_point() + 
1  facet_grid(drv ~ cyl)
1
En facet_grid(drv ~ cyl) la variable de la izquierda representa el eje vertical (y) y la varible de la derecha el eje horizontal (x)

.. con más de una variable

ggplot(mpg, aes(x = displ, y = hwy)) + 
  geom_point() + 
1  facet_grid(drv ~ cyl, scales = "free")
1
El argumento scales = "free" permite que cada gráfico tenga su propia escala. Otras opciones, con resultados obvios, son free_x y free_y

Ejercicios

Ejecute:

ggplot(mpg) + 
  geom_point(aes(x = displ, y = hwy)) +
  facet_grid(drv ~ .)

ggplot(mpg) + 
  geom_point(aes(x = displ, y = hwy)) +
  facet_grid(. ~ cyl)
  1. Viendo el resultado de estos comandos, qué hace el argumento “.”?
  2. Qué sucede cuando usamos facet_ con una variable continua?
  3. Qué significan los ejes vacíos en facet_grid(drv ~ cyl)?

Ejercicios

Ejecute:

ggplot(mpg) + 
  geom_point(aes(x = displ, y = hwy)) + 
  facet_wrap(~ cyl, nrow = 2)
  1. Considerando este gráfico: Cuáles son algunas ventajas y desventajas de usar facet_ en vez de la estética color = ... ? Cómo cambiaría tu apreciación si tuvieras un juego de datos más extenso?
  2. Consulta ?facet_wrap y analiza las formas en las que es posible personalizar el display de los gráficos

Ejercicios

Compare:

ggplot(mpg, aes(x = displ)) + 
  geom_histogram() + 
  facet_grid(drv ~ .)

ggplot(mpg, aes(x = displ)) + 
  geom_histogram() +
  facet_grid(. ~ drv)

Cuál de estos gráficos hace más fácil comparar el tamaño del motor (displ) entre autos con distinto tren (drv). Qué aprendemos sobre utilizar la variable para facetar en renglones o columnas?

Transformaciones estadísticas

ggplot(diamonds, aes(x = cut)) +
1   geom_bar()
1
geom_bar( ) ayuda a graficar variables discretas con barras. Pero qué grafica?

En el eje y está la variable count que no es parte del juego de datos diamonds!

En el eje y está la variable count que no es parte del juego de datos diamonds!

Transformaciones estadísticas

  • Los diagramas de barras, histogramas, y polígonos de frecuencia separan los datos en bins y grafican el número de observaciones dentro de cada bin

  • Los smoothers ajustan un modelo de suavizamiento a tus datos y grafican las predicciones de dicho modelo

  • Los diagramas de caja y bigote calculan el resumen de cinco puntos de la muestra y grafican el boxplot

Transformaciones estadísticas

Los algoritmos con los que se calculan los valores del gráfico se denominan stat

Ilustración del proceso de cálculo del stat para un gráfico de barras

Ilustración del proceso de cálculo del stat para un gráfico de barras

Transformaciones estadísticas

Cada geom_ tiene un stat_ por defecto, y cada stat_ tiene una geom_ por defecto, pero

# 1. Quizás queremos cambiar el estadístico por defecto
diamonds |>
  count(cut) |>
  ggplot(aes(x = cut, y = n)) +
  geom_bar(stat = "identity")

# 2. Quizás queremos cambiar el mapeo por defecto

diamonds |> 
   ggplot(aes(x = cut, y = after_stat(prop), group = 1)) + 
  geom_bar()

# 3. Quizás queremos usar un estadístico que enfatice algo...

ggplot(diamonds) + 
  stat_summary(
    aes(x = cut, y = depth),
    fun.min = min,
    fun.max = max,
    fun = median
1  )
1
ggplot2 cuenta con más de 20 stat que podemos usar y cada función tiene ayuda documentada. Por ejemplo ?stat_summary.

Ejercicios:

  1. Cuál es la geom_ asociada por defecto con stat_summary? Utilice esta geometría para repetir el último gráfico (Use su IA favorita si tiene dificultades navegando la ayuda de R)

  2. Qué hace geom_col() y en qué se diferencia de geom_bar()?

  3. geom_y stat_ vienen, muchas veces, en pares. Haga una lista de los pares y analícela suscintamente. (Lea la documentación o use su IA preferida)

  4. Qué variables se calculan cuando se usa stat_smooth( )? Qué argumentos controlan su comportamiento?

Ejercicios:

En el gráfico de porporciones, usamos el mapeo group = 1. Por qué? Qué problema tienen los siguientes gráficos:

ggplot(diamonds, aes(x = cut, y = after_stat(prop))) + 
  geom_bar()
ggplot(diamonds, aes(x = cut, fill = color, y = after_stat(prop))) + 
  geom_bar()