library(tidyverse) # incluye ggplot2
library(readxl) # funciones para importar xlsx
library(janitor) # funciones de limpieza
library(patchwork) #combinar gráficos de ggplot
library(ggExtra)
library(ggthemes) # nuevas temas para los
library(plotly) #gráficos interactivos # remotes::install_github("plotly/plotly")
library(tibble)
library(skimr) # reseumen numerico
library(modeest)
library(ggrepel) # añadir etiquetas a los gráficos
library(RColorBrewer) #paletas de colores
library(plotly) #graficos interactivos
library(corrplot)
VIZ de datos con ggplot y Rmarkdown
Tema: Gráfico de Puntos y Dispersión
1 Requisitos
1.1 Cargar librerias
Librerias necesarias para el curso. Se deben haber instalado los paquetes previament con install.packages(nombre del paquete).
1.2 Carga de datos
Se utilizará los datos de estudio de lectura y matematica de las escuelas de Miami en 2012 y 2013 por grado y Distrito llamado SchoolsMiamiDade.
Significado de las variables del dataframe SchoolsMiamiDade
Escuelas de Miami con notas promedio en las materias de lectura y matematica en los años 2012 y 2013.
SchoolName : Nombre de la Escuela
BoardDistrict : Núemero de Dsitrito donde esta la escuela
SchoolGrade : Grado al que se le aplico la prueba
Reading2012 : puntaje de 1 a 100 en Lectura 2012
Reading2013: puntaje de 1 a 100 en Lectura 2013
ReadingDifference: diferencia entre 2013 y 2012 en lectura
Math2012: puntaje de 1 a 100 en Matemática 2012
Math2013: puntaje de 1 a 100 en Matemática 2013
MathDifference: diferencia entre 2013 y 2012 en matemática
<- read.csv("data/SchoolsMiamiDade.csv")
SchoolsMiamiDade<- as_tibble(SchoolsMiamiDade)
SchoolsMiamiDade head(SchoolsMiamiDade,5)
# A tibble: 5 × 9
SchoolName BoardDistrict SchoolGrade Reading2012 Reading2013 ReadingDifference
<chr> <chr> <chr> <int> <int> <int>
1 0041 AIR … (9) A 82 80 -2
2 0070 CORA… (9) A 71 73 2
3 0071 EUGE… (5) A 69 69 0
4 0072 SUMM… (9) B 57 50 -7
5 0073 MAND… (9) C 34 32 -2
# ℹ 3 more variables: Math2012 <int>, Math2013 <int>, MathDifference <int>
# Verificar tipos de datos
|>
SchoolsMiamiDade glimpse()
Rows: 460
Columns: 9
$ SchoolName <chr> "0041 AIR BASE ELEMENTAR", "0070 CORAL REEF MONT AC"…
$ BoardDistrict <chr> "(9)", "(9)", "(5)", "(9)", "(9)", "(2)", "(4)", "(3…
$ SchoolGrade <chr> "A", "A", "A", "B", "C", "F", "A", "A", "A", "C", "D…
$ Reading2012 <int> 82, 71, 69, 57, 34, 28, 68, 73, 68, 39, 38, 45, 53, …
$ Reading2013 <int> 80, 73, 69, 50, 32, 29, 70, 72, 68, 32, 41, 35, 51, …
$ ReadingDifference <int> -2, 2, 0, -7, -2, 1, 2, -1, 0, -7, 3, -10, -2, -1, -…
$ Math2012 <int> 71, 64, 66, 50, 38, 26, 68, 78, 73, 41, 43, 59, 56, …
$ Math2013 <int> 75, 56, 64, 54, 39, 47, 66, 77, 76, 39, 47, 50, 55, …
$ MathDifference <int> 4, -8, -2, 4, 1, 21, -2, -1, 3, -2, 4, -9, -1, -3, -…
$BoardDistrict <- as.factor(SchoolsMiamiDade$BoardDistrict)
SchoolsMiamiDade$SchoolGrade <- as.factor(SchoolsMiamiDade$SchoolGrade)
SchoolsMiamiDade
# ver resumen de datos
|>
SchoolsMiamiDade summary()
SchoolName BoardDistrict SchoolGrade Reading2012 Reading2013
Length:460 (9) : 76 : 55 Min. : 0.00 Min. : 0.00
Class :character (2) : 75 A:204 1st Qu.: 36.00 1st Qu.:37.00
Mode :character (1) : 53 B: 85 Median : 51.00 Median :52.50
(6) : 53 C: 77 Mean : 50.98 Mean :52.08
(4) : 47 D: 31 3rd Qu.: 67.00 3rd Qu.:68.00
(8) : 47 F: 7 Max. :100.00 Max. :97.00
(Other):109 I: 1 NA's :17
ReadingDifference Math2012 Math2013 MathDifference
Min. :-17.000 Min. : 0.00 Min. : 0.00 Min. :-25.0000
1st Qu.: -2.000 1st Qu.: 41.00 1st Qu.: 40.00 1st Qu.: -5.0000
Median : 1.000 Median : 53.00 Median : 52.50 Median : -1.0000
Mean : 1.113 Mean : 53.26 Mean : 52.29 Mean : -0.7046
3rd Qu.: 4.000 3rd Qu.: 69.00 3rd Qu.: 67.00 3rd Qu.: 4.0000
Max. : 33.000 Max. :100.00 Max. :100.00 Max. : 25.0000
NA's :17 NA's :91 NA's :78 NA's :91
pairs(SchoolsMiamiDade[, c(4:8)])
cor(na.omit(SchoolsMiamiDade[, c(4:8)]))
Reading2012 Reading2013 ReadingDifference Math2012
Reading2012 1.0000000 0.9609235 -0.13799645 0.9285369
Reading2013 0.9609235 1.0000000 0.14156170 0.8947162
ReadingDifference -0.1379965 0.1415617 1.00000000 -0.1193211
Math2012 0.9285369 0.8947162 -0.11932109 1.0000000
Math2013 0.8856214 0.8800471 -0.01833436 0.9384998
Math2013
Reading2012 0.88562135
Reading2013 0.88004709
ReadingDifference -0.01833436
Math2012 0.93849976
Math2013 1.00000000
2 Gráficos de Dispersión y puntos
Los gráficos de dispersión (gráfico de puntos, diagrama de XY) utilizan dos variables cuantitativas para generar una colección de puntos colocados usando coordenadas cartesianas para mostrar valores de dos variables. Al mostrar una variable en cada eje, se puede detectar si existe una relación o correlación entre las dos variables.
Se pueden interpretar varios tipos de correlación a través de los patrones mostrados en los diagramas de dispersión. Estos son: positivo (los valores aumentan juntos), negativo (un valor disminuye a medida que el otro aumenta), nulo (sin correlación).
2.1 Análisis de la correlación de variables
#correlación de variables, se omiten valores nulos
<- cor(na.omit(SchoolsMiamiDade[,4:9]))
data_ #gráfico de correlación
corrplot(data_)
3 Gráfico de puntos
Se pueden construir gráfico de dispersión con ggplot2 utilizando la geometría geom_point() el cual requiere de 2 variables por lo regular cuantitativa. Sin embargo, tambien es posible generar este tipo de gráficos con una variable númerica Reading2012 y una la variable BoardDistrict tipo categorica.
3.1 Una variable cuantitativa y una cualitativa
El gráfico muestra la posición de cada escuela según puntaje, por cada distrito.
#grafico de dispersión dos variables una cuantitativa y otra cualitativa
# Materia de lectura 2012 en los diferentes distritos
|>
SchoolsMiamiDade ggplot(aes(Reading2012,BoardDistrict))+
geom_point()
Warning: Removed 17 rows containing missing values (`geom_point()`).
# Materia de lectura 2012 en los diferentes grados
|>
SchoolsMiamiDade ggplot(aes(Reading2012,SchoolGrade))+
geom_point()
Warning: Removed 17 rows containing missing values (`geom_point()`).
3.2 Color en los puntos del gráfico
Para modificar el color de los puntos en el gráfico podemos utilizar la porpiedad fill en la geometria de puntos.
|>
SchoolsMiamiDade ggplot(aes(Reading2012,BoardDistrict))+
geom_point(color="salmon")
Warning: Removed 17 rows containing missing values (`geom_point()`).
¿Cuántas escuelas están por encima de de la nota minima de 71 (como ejemplo) en lectura y matemática 2012
Para responde esta pregunta utilizaremos la función filter(Reading2012 >= 71) para crear el filtro de las escuelas con puntaje mayor o igual a 71.
El resultado es, lectura = 87, matematica = 74.
# filtro y conteo de datos en lectura 2012
|>
SchoolsMiamiDade filter(Reading2012 >= 71) |>
nrow()
[1] 87
# filtro y conteo de datos en matematica 2012
|>
SchoolsMiamiDade filter(Math2012 >= 71) |>
nrow()
[1] 74
Representación de gráfico de dispersión a la pregunta anterior
Para colorear las escuelas según puntaje mayor a 71 podemos utilizar la misma condición del filtro Reading2012 >= 71 usado en el codigo anterior para buscar los valores, este filtro lo podemos colocar en la propiedad color de la geometria geom_point(aes(color=Reading2012 >= 71)) . De esta forma ggplot hará la separación de colores por nosotros.
# Gráfico con dos variables y colorear con filtro
# Lectura 2012
|>
SchoolsMiamiDade ggplot(aes(Reading2012,BoardDistrict))+
geom_point(aes(color=Reading2012 >= 71))
Warning: Removed 17 rows containing missing values (`geom_point()`).
Eliminar valor vacios en el gráfico El gráfico anterior coloca en la leyenda los colores de los valores mayores a 71 como TRUE, los menores a 71 como FALSE, pero tambien coloca el valor de NA que representan los valores nulos. Para eliminar estos valores podemos filtrar los datos previos al uso de ggplot utilizando na.omit(Reading2012) otra opción es utilizar filter(Reading2012 !=““).
# Gráfico - se eliminan datos vacios
|>
SchoolsMiamiDade na.omit(Reading2012) |>
ggplot(aes(Reading2012,BoardDistrict))+
geom_point(aes(color=Reading2012 >= 71))
Eliminar leyenda Si deseamos eliminar la leyenda de color (que no aporta nada), podemos colocar al final la capa guides(color = FALSE).
# Gráfico - se elimina leyenda de colores de datos
|>
SchoolsMiamiDade na.omit(Reading2012) |>
ggplot(aes(Reading2012,BoardDistrict))+
geom_point(aes(color=Reading2012 >= 71))+
guides(color = "none")
4 Gráfico de dispersión
4.1 Dos variables numéricas
Utilizamos las variables relacionadas con los puntajes de matematica 2012 y lectura 2012, ambos datos cuantitativos. El gráfico se puede interpretar una correlación fuerte positiva (los valores aumentan juntos).
# Gráfico con dos variables numericas
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point()
Warning: Removed 91 rows containing missing values (`geom_point()`).
Modificar color y tamaño en los puntos
# Gráfico con dos variables numericas y un solo color en los puntos
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color="salmon"),
size=3)
Warning: Removed 91 rows containing missing values (`geom_point()`).
4.2 Tres variables en el gráfico
En los diagramas de dispersión en ggplot, es posible añadir una tercera variable, en este caso la vatriable categorica BoardDistrict en la porpiedad color de la geometria.
De esta forma es posible identificar las escuelas con mayor puntaje en ambas materia y a que distrito pertencen,
# Gráfico con dos variables numéricas y colores según los distritos
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
size=3)
Warning: Removed 91 rows containing missing values (`geom_point()`).
Modificar el tamaño de los puntos y la transparencia (valores de 0 a 1)
Uno de los inconvenientes comunes en los gráficos de dispersión con muchos puntos, es el solapamiento de estos, por lo que aveces no se puede apreciar de forma correcta el número de puntos, Para ello podemos utilizar la propiedad alpha para la transparencia. Se aumenta el tamaño de los puntos a 4 a manera de ejemplo para mostrar mejor el solapamiento.
# Tamaño de los puntos fijos utilizando size = 4
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
alpha=0.55,
size=4)
Warning: Removed 91 rows containing missing values (`geom_point()`).
4.3 Cuatro variables
Podemos utilizar una cuarta variable en este tipo de gráfico modificando el tamañó de los puntos de forma dinámica, en este caso la variable a utilizar Reading2012 debe ser de tipo numérica. Al realizar esto se generan dos leyendas en el gráfico, uno de color y otra se size.
# Tamaño de los puntos dinámicos utilizando size = Reading2012
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
size=Reading2012),
alpha=0.55)
Warning: Removed 91 rows containing missing values (`geom_point()`).
# eliminar leyenda de size
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
size=Reading2012),
alpha=0.55)+
guides(size="none")+
labs(color="Distrito")
Warning: Removed 91 rows containing missing values (`geom_point()`).
4.4 Cinco variables
A manera de Ejemplo (carga en la visualización), es posible incluir una quinta variable en el gráfico modificando la propiedad shape en el geometria, la variable que modifca etse parámetro debe ser categorica.
# Tamaño de los puntos dinámicos y la forma del punto según el Distrito
|>
SchoolsMiamiDade ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
size=Reading2012,
shape=SchoolGrade),
alpha=0.45)+
guides(size="none")+
labs(color="Distrito")
Warning: The shape palette can deal with a maximum of 6 discrete values because
more than 6 becomes difficult to discriminate; you have 7. Consider
specifying shapes manually if you must have them.
Warning: Removed 92 rows containing missing values (`geom_point()`).
4.5 Eliminar datos vacios
Se verifican los datos con una tabla de frecuencia.
#tabla de frecuencia
# Una forma de mostrar los datos categoricos
# y el numero de valores sin categoria
table(SchoolsMiamiDade$BoardDistrict)
() (0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
2 1 53 75 28 47 41 53 37 47 76
table(SchoolsMiamiDade$SchoolGrade)
A B C D F I
55 204 85 77 31 7 1
summary(SchoolsMiamiDade)
SchoolName BoardDistrict SchoolGrade Reading2012 Reading2013
Length:460 (9) : 76 : 55 Min. : 0.00 Min. : 0.00
Class :character (2) : 75 A:204 1st Qu.: 36.00 1st Qu.:37.00
Mode :character (1) : 53 B: 85 Median : 51.00 Median :52.50
(6) : 53 C: 77 Mean : 50.98 Mean :52.08
(4) : 47 D: 31 3rd Qu.: 67.00 3rd Qu.:68.00
(8) : 47 F: 7 Max. :100.00 Max. :97.00
(Other):109 I: 1 NA's :17
ReadingDifference Math2012 Math2013 MathDifference
Min. :-17.000 Min. : 0.00 Min. : 0.00 Min. :-25.0000
1st Qu.: -2.000 1st Qu.: 41.00 1st Qu.: 40.00 1st Qu.: -5.0000
Median : 1.000 Median : 53.00 Median : 52.50 Median : -1.0000
Mean : 1.113 Mean : 53.26 Mean : 52.29 Mean : -0.7046
3rd Qu.: 4.000 3rd Qu.: 69.00 3rd Qu.: 67.00 3rd Qu.: 4.0000
Max. : 33.000 Max. :100.00 Max. :100.00 Max. : 25.0000
NA's :17 NA's :91 NA's :78 NA's :91
|>
SchoolsMiamiDade filter(SchoolGrade!=" ") |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
size=Reading2012,
shape=SchoolGrade),
alpha=0.45)+
guides(size="none")+
labs(color="Distrito")
Warning: Removed 64 rows containing missing values (`geom_point()`).
Eliminar Distritos vacios o con minimo de escuelas* (opcional)
Eliminar escuelas con valores () y (0) en los distritos que no aportan información al gráfico. Se verifican los datos con una tabla de frecuencia.
#tabla de frecuencia de distritos
table(SchoolsMiamiDade$BoardDistrict)
() (0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
2 1 53 75 28 47 41 53 37 47 76
#eliminar datos de distritos con valor ()
|>
SchoolsMiamiDade filter(BoardDistrict!="()") |>
ggplot( aes(Reading2012,Math2012))+
geom_point(aes(color=BoardDistrict),
alpha=0.55,
size=4)+
guides(color = guide_legend("Distritos"))
Warning: Removed 89 rows containing missing values (`geom_point()`).
#eliminar datos de distritos con valores vacios (), (0)
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot( aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
alpha=0.55,
size=4)+
guides(color = guide_legend("Distritos"))
Warning: Removed 89 rows containing missing values (`geom_point()`).
5 Énfasis en los gráficos
5.1 Enfasis colores en puntos
En un gráfico de dispersión tambien podemos hacer énfasis en una categoria en particular, utilizando colores manuales. En este ejmplo contabilizamso el número de categorias de la variable BoardDistrict que son 11 eliminando las categorias “()”,“(0)”, por lo que serían 9 categorias, por lo tanto deberiamos crear nueve colores para cada categoria almacenado en el vector colores.
# Calcular Cantidad de categorias
table(SchoolsMiamiDade$BoardDistrict) |>
length()
[1] 11
#El número de colores esta asociado al número de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,
colores "#636363" ,"#636363","#636363", "#636363")
3] <- "#F26419"
colores[
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
alpha=0.5,
size=4)+
guides(size="none")+
labs(color="Distrito")+
scale_color_manual(values = colores)
Warning: Removed 89 rows containing missing values (`geom_point()`).
5.2 Enfasis transparencia en puntos
Otra forma de hacer énfasis en el gráfico es a través de la transparencia alpha, para ello debemos crear un vector transparenciacon los valores del valor alpha de cada valor de la variable BoardDistrict y utilizando scale_alpha_manual(). Es importante resaltar que la propiedad alfa en la estetica aes() debe llevar la variable BoardDistrict.
# Calcular Cantidad de categorias
table(SchoolsMiamiDade$BoardDistrict) |>
length()
[1] 11
# El número de colores esta asociado al número de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,
colores "#636363" ,"#636363","#636363", "#636363")
3] <- "#F26419"
colores[
# valores de trasnparencia
<- sample(0.2,9, replace = TRUE)
transparencia 3] <- 1.0
transparencia[
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
alpha=BoardDistrict),
size=4)+
guides(size="none")+
labs(color="Distrito")+
scale_color_manual(values = colores)+
scale_alpha_manual(values = transparencia)
Warning: Removed 89 rows containing missing values (`geom_point()`).
5.3 Etiquetas en los puntos
Para mostarr las etiquetas o texto en los puntos del gráfico debemos utilizar la geoametria geom_text() y el valor de la etiqueta a utilizar label=variable.
# El número de colores esta asociado al número de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,
colores "#636363" ,"#636363","#636363", "#636363")
3] <- "#F26419"
colores[
# valores de trasnparencia
<- sample(0.2,9, replace = TRUE)
transparencia 3] <- 1.0
transparencia[
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
alpha=BoardDistrict),
size=4)+
guides(size="none",
alpha ="none")+
labs(color="Distrito")+
scale_color_manual(values = colores)+
scale_alpha_manual(values = transparencia) +
geom_text(aes(
label=SchoolName),
size=2.5,
hjust=-0.1,
vjust=0.1,
color="#252b2b"
)
Warning: Removed 89 rows containing missing values (`geom_point()`).
Warning: Removed 89 rows containing missing values (`geom_text()`).
5.4 Enfasis en el texto
POdemos tambien hacer énfasis en las etiquetas de texto, colocando solo las etiquetas de los punto que queremos, para ello es necesario crear una variable que contenga esos datos. etiquetas <- (ifelse(SchoolsMiamiDade\(BoardDistrict=="(3)", SchoolsMiamiDade\)SchoolName,” “))**
SchoolsMiamiDade$label_ <- etiquetas
Si el distrito es”(3)” asignar a la etiqueta el nombre de la escuela de la variable SchoolName** , sino le asigna espacio en blanco a la etiqueta. Alamcenamos este vector al tibble SchoolsMiamiDade.
# El número de colores esta asociado al número de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,
colores "#636363" ,"#636363","#636363", "#636363")
3] <- "#F26419"
colores[
# valores de trasnparencia
<- sample(0.2,9, replace = TRUE)
transparencia 3] <- 1.0
transparencia[
#valores de etiqueta
# SI el distrito es "(3)" asignar a la etiqueta el nombre de la escuela
# sino le asigna espacio en blanco a la etiqueta
<- (ifelse(SchoolsMiamiDade$BoardDistrict=="(3)",
etiquetas $SchoolName," "))
SchoolsMiamiDade$label_ <- etiquetas
SchoolsMiamiDade
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
alpha=BoardDistrict),
size=4)+
guides(size="none",
alpha ="none")+
labs(color="Distrito")+
scale_color_manual(values = colores)+
scale_alpha_manual(values = transparencia) +
geom_text(aes(
label=label_),
size=2.5,
hjust=-0.1,
vjust=0.1,
color="#252b2b"
)
Warning: Removed 89 rows containing missing values (`geom_point()`).
Warning: Removed 89 rows containing missing values (`geom_text()`).
Recortar texto de la etiqueta que contien elo snombre de las escuelas
Para recortar el nombre de las etiquetas, podemos utilizar el siguiente código str_sub(etiquetas,1,4), este selecciona de cada etiqueta la posición 1 al 4 de cada texto y luego se lo asigna a la variable label del dataframe.
# El número de colores esta asociado al número de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,
colores "#636363" ,"#636363","#636363", "#636363")
3] <- "#F26419"
colores[
# valores de trasnparencia
<- sample(0.2,9, replace = TRUE)
transparencia 3] <- 1.0
transparencia[
#valores de etiqueta
# SI el distrito es "(3)" asignar a la etiqueta el nombre de la escuela
# sino le asigna espacio en blanco a la etiqueta
<- (ifelse(SchoolsMiamiDade$BoardDistrict=="(3)",
etiquetas $SchoolName," "))
SchoolsMiamiDade
# Selecciona solo los primeros cuatros digitos de la etiqueta
# que contiene los nombres
$label_ <- str_sub(etiquetas,1,4)
SchoolsMiamiDade
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict,
alpha=BoardDistrict),
size=4)+
guides(size="none",
alpha ="none")+
labs(color="Distrito")+
scale_color_manual(values = colores)+
scale_alpha_manual(values = transparencia) +
geom_text(aes(
label=label_),
size=2.5,
hjust=-0.15,
vjust=0.1,
color="#252b2b"
)
Warning: Removed 89 rows containing missing values (`geom_point()`).
Warning: Removed 89 rows containing missing values (`geom_text()`).
6 Facetas
6.1 Facetas para clasificar gráficos
Podemos utilizar facetas para separar los gráficos de dispersión por una variable categórica, podemos utilizar facet_wrap() o facet_grid() la forma de dsitribución es diferente.
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
alpha=0.55,
size=4) +
labs(title="Escuelas con puntajes de lectura en Matemática y Lectura por Distrito",
subtitle="Datos de USA - 2012") +
ylab("Notas Matemática") +
xlab("Notas Lectura")+
guides(color = guide_legend("Distritos")) +
facet_wrap(~BoardDistrict)
Warning: Removed 89 rows containing missing values (`geom_point()`).
Uso de la función facet_grid()
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Math2012))+
geom_point(aes(
color=BoardDistrict),
alpha=0.55,
size=4) +
labs(title="Escuelas con puntajes de lectura en Matemática y Lectura por Distrito",
subtitle="Datos de USA - 2012") +
ylab("Notas Matemática") +
xlab("Notas Lectura")+
guides(color = guide_legend("Distritos")) +
facet_grid(BoardDistrict~.)
Warning: Removed 89 rows containing missing values (`geom_point()`).
6.2 Evaluación de las variables de lectura en los años 2012 y 2013
Ambos datos cuantitativos Reading2013,Reading2012.
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2013,Reading2012))+
geom_point(size=2, aes(color=BoardDistrict), alpha=0.55) +
labs(title="Escuelas con puntajes de lectura por Distrito",
subtitle="Datos de USA - 2012") +
ylab("notas de Lectura 2012") + xlab("Notas de Lectura 2013")+
guides(color = guide_legend("Distritos"))
Warning: Removed 15 rows containing missing values (`geom_point()`).
7 Recta de regresión lineal
Se puede crear una recta de regresión lineal a través de la geometría geom_smooth() y sus métodos geom_smooth(method=‘lm’) : - lm modelo lineal - glm - gam - loess ajuste de regresión local suave
#metodol lm
|>
SchoolsMiamiDade filter(BoardDistrict!=c("()","(0)")) |>
ggplot(aes(Reading2012,Reading2013))+
geom_point(aes(color=BoardDistrict)) +
labs(title="Escuelas con puntajes de lectura por Distrito y diferencia de puntos por año", subtitle="Datos de USA - 2012") +
ylab("Puntos Lectura 2013") + xlab("Puntos Lectura 2012") +
geom_smooth(method='lm')
`geom_smooth()` using formula = 'y ~ x'
Warning: Removed 15 rows containing non-finite values (`stat_smooth()`).
Warning: Removed 15 rows containing missing values (`geom_point()`).
8 Práctica
Crear gráfico de puntos utilizando los datos INEC-morbilidad-2023-10-14.csv. Es necesario filtrar los datos seleccionando solo: Region=“PANAMA METRO”
Genero=“M”
Edad=“15 a 19 años” o igual a Edad=“20 a 24 años”
Se debe usar como en los colores la variable Causas y hacer énfasis en los colores en la **Causa=Candidiasis de la vulva y de la vagina (n77.1*). El valor de alpha=035 (opcional) y la faceta se debe hacer utilizando la variable edad**.
Gráfico de resultado: