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
VIZ de datos con ggplot y Rmarkdown
Tema: Gráfico de Barras
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:
SchoolName : Nombre de la Escuela
BoardDistrict : Número 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/data_penguins_clean.csv")
datos_pinguinos_clean <- as_tibble(datos_pinguinos_clean)
datos_pinguinos_clean <- datos_pinguinos_clean[,-1]
datos_pinguinos_cleanhead(datos_pinguinos_clean,5)
# A tibble: 5 × 7
species island bill_lenght bill_depth flipper_lenght sex body_mass_g
<chr> <chr> <dbl> <dbl> <int> <chr> <int>
1 Adelie Torgersen 39.1 18.7 181 male 3750
2 Adelie Torgersen 39.5 17.4 186 female 3800
3 Adelie Torgersen 40.3 18 195 female 3250
4 Adelie Torgersen 36.7 19.3 193 female 3450
5 Adelie Torgersen 39.3 20.6 190 male 3650
# Transformar variables de tipo caracter a factor
$species <- as.factor(datos_pinguinos_clean$species)
datos_pinguinos_clean$island<- as.factor(datos_pinguinos_clean$island)
datos_pinguinos_clean$sex<- as.factor(datos_pinguinos_clean$sex)
datos_pinguinos_clean
# Verificar tipos de datos
|>
datos_pinguinos_clean glimpse()
Rows: 333
Columns: 7
$ species <fct> Adelie, Adelie, Adelie, Adelie, Adelie, Adelie, Adelie,…
$ island <fct> Torgersen, Torgersen, Torgersen, Torgersen, Torgersen, …
$ bill_lenght <dbl> 39.1, 39.5, 40.3, 36.7, 39.3, 38.9, 39.2, 41.1, 38.6, 3…
$ bill_depth <dbl> 18.7, 17.4, 18.0, 19.3, 20.6, 17.8, 19.6, 17.6, 21.2, 2…
$ flipper_lenght <int> 181, 186, 195, 193, 190, 181, 195, 182, 191, 198, 185, …
$ sex <fct> male, female, female, female, male, female, male, femal…
$ body_mass_g <int> 3750, 3800, 3250, 3450, 3650, 3625, 4675, 3200, 3800, 4…
2 Gráfico de barra
Conocido como gráfico de barras o gráfico de columnas, muestra las frecuencias absolutas y relativas en un sistema de coordenadas de dos ejes.Es utilizado para mostrar comparaciones numéricas discretas entre categorías, por lo tanto se utiliza como base una variable categórica. Un eje del gráfico muestra las categorías específicas que se están comparando y el otro eje representa una escala de valores discretos.
Hay que mencionar que aunque utilizamos como sinónimo los gráficos de barras y columnas, un gráfico de columna es un gráfico con barras verticales y un gráfico de barras son gráficos en posición horizontal.
2.1 Gráfico de barra en R
Para crear un gráfico de barra en ggplot utilizamos la geometría geom_bar() donde la estética aes() debe ser una variable categórica, como en este caso las variables species, island, sex del tibble datos_pinguinos_clean.
Lo que hace ggplot, es agrupar el número de observaciones por cada categoría y el valor calculado corresponde al ancho o alto de la barra.
#Gráfico de barras de numero de observaciones por especies
|>
datos_pinguinos_clean ggplot(aes(x=species)) +
geom_bar()
#Gráfico de barras de numero de observaciones por isla
|>
datos_pinguinos_clean ggplot(aes(x=island)) +
geom_bar()
#Gráfico de barras de numero de observaciones por sexo
|>
datos_pinguinos_clean ggplot(aes(x=sex)) +
geom_bar()
2.2 Gráfico de columnas
Ggplot utiliza otra geometría para crear gráficos de columnas, la cual es geom_col(), sin embargo, su funcionamiento es un poco diferente ya que esta utiliza un valor categórico y un valor numérico para crear las columnas el cual debe ser calculado. Este gráfico tambien permite transformar un gráfico de barras o más bien girar el gráfico.
# Crear datos de conteo de observaciones por categoria
<- datos_pinguinos_clean |>
conteo count(species)
# Crear gráfico de columnas
|>
conteo ggplot(aes(x=species, y=n)) +
geom_col()
# Girar Gráfico
|>
conteo ggplot(aes(y=species, x=n)) +
geom_col()
2.3 Insertar etiquetas de datos en el gráfico
Para añadir texto con los datos en cada columna se debe añadir la capa geom_text(aes(label = after_stat(count)),stat = “count”).
# Observaciones por especies
|>
datos_pinguinos_clean ggplot(aes(species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)),
stat = "count"
)
# Modificar posición de los numeros en capa vertical
# vjust = 0.0 (coloca el text por encima de la barra)
# vjust = -1.0 (valores positivos para bajar texto, negativos para subir)
|>
datos_pinguinos_clean ggplot(aes(species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0
)
# modificar color del texto de etiqueta de datos
|>
datos_pinguinos_clean ggplot(aes(species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
)
2.4 Modificar colores de las barras del gráfico
Se utiliza la propiedad fill en las propiedad de aes(fill= “#color” / variable) para añadir color, se puede utilizar un solo color o asignar el color según categoría species.
# Uno solo color en las barras
|>
datos_pinguinos_clean ggplot(aes(species,)) +
geom_bar(fill="#a62749")+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
)
#Colores en las barras según categorias
# Se crea una leyenda de los colores de la categoria
|>
datos_pinguinos_clean ggplot(aes(species,fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
)
2.5 Modificar Posición de la leyenda de categorias
Se utiliza la capa de theme() y la propiedad legend.position, con los valores “none”, “left”, “right”, “top”, “bottom”. Al mover la leyenda, el titulo de la leyenda no aporta nada, ya que los colores y el eje x describen la categoria, para eliminar el titulo de la leyenda debemos recordar que la leyenda se genera de la propiedad fill, paar eliminarla utilizamos labs(fill=““).
#Modificar la posición de la leyenda
|>
datos_pinguinos_clean ggplot(aes(species,fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="")
2.6 Modificar las coordenadas de los ejes
en el gráfico de ejemplo, los valores encima de las barras se cortan debido a que las etiquetas de los datos están por encima del valor del eje y. Para modificar las coordenadas X y/o Y en el gráfico se puede utilizar la capa de coordenadas coord_cartesian(ylim=c(0,650)). Se se desea modificar el eje x entonces se utilizaría coord_cartesian(xlim=c(0,100)) pero en este tipo de gráfico no es necesario. En el e
#Se modifica la coordenada "Y" con los valores de 0 a 650 en un vector atómico
|>
datos_pinguinos_clean ggplot(aes(species,fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="") +
coord_cartesian(ylim=c(0,650))
#Se modifica la coordenada "Y" con los valores de 0 a 160 en un vector atómico
|>
datos_pinguinos_clean ggplot(aes(species,fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="") +
coord_cartesian(ylim=c(0,160))
2.7 Ordenar barras por tamaño
Para ordenar las barras debemos utilizar la función fct_infreq()) en la estetica aes() que contiene la variable especies.
#Se modifica la coordenada "Y" con los valores de 0 a 620 en un vector atómico
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species),
fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="") +
coord_cartesian(ylim=c(0,160))
Invertir orden de las barras Para invertir el orden de las barras debemos utilizar la función fct_rev() en la estetica aes() que contiene la variable especies tomando en cuenta la función fct_infreq() que ordena el gráfico. Estas funciones de ordenamiento solo ordenan variables categoricas o de tipo factor.
#Se modifica la coordenada "Y" con los valores de 0 a 620 en un vector atómico
|>
datos_pinguinos_clean ggplot(aes(fct_rev(fct_infreq(species)),
fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="") +
coord_cartesian(ylim=c(0,160))
2.8 Modificar nombre de los ejes
Para modificar el nombre de los ejes debemos utilizar la fucnión lab() e incluir los valores x / y a modificar de la siguiente forma labs(x=“Especies”, y=“Cantidad”).
#Se modifica la coordenada "Y" con los valores de 0 a 620 en un vector atómico
|>
datos_pinguinos_clean ggplot(aes(fct_rev(fct_infreq(species)),
fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="",
x="Especies",
y="Cantidad") +
coord_cartesian(ylim=c(0,160))
3 Barras apiladas
Se puede utilizar dos variables categoricas en los gráficos de barras agrupando los datos por la estetica de color fill= variable categorica de esta forma se crearán las barras apiladas.
# Dos variables categoricas
# species es la categoria en el eje x
# sex la categoria que apila las barras
|>
datos_pinguinos_clean ggplot(aes(species, fill=sex)) +
geom_bar()
# Dos variables categoricas
# sex es la categoria en el eje x
# speciesla categoria que apila las barras
|>
datos_pinguinos_clean ggplot(aes(sex, fill=species)) +
geom_bar()
3.1 Etiqueta de datos en barras apiladas
Las barras apiladas tambien son conocidas como stack bar es por ello que al inseratr los datos en barras apiladas debemos cambiar su posición con position = position_stack(x,y) en la geoametria de texto.
#añadir capa geom_text()
# se insertan las etiquetas de datos , pero , no centralizadas
|>
datos_pinguinos_clean ggplot(aes(species, fill=sex)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count"
)
#para centrarlas se utiliza la propiedad position = position_stack(0.5, 0.0) dentro de goem_tex()
|>
datos_pinguinos_clean ggplot(aes(species, fill=sex)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_stack(0.5, 0.0)
)
3.2 Ordenar barras apiladas
Para ordenar las barras aipladas utilizamos tambien la función de ordenación fct_infreq() en las categoria del eje x species.
# Ordenar barras apiladas
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_stack(0.5, 0.0)
)
3.3 Barras apiladas - datos relativos
Si queremos comparar las columnas con proporciones relativas, debemos añadir a la geometria la propiedad geom_bar(position = “fill”), con esto ggplot, modificará los valores de la porporción de datos de la variable sex en cada columna island.
|>
datos_pinguinos_clean ggplot(aes(species, fill=sex)) +
geom_bar(position = "fill")
3.4 Incluir texto de pie de gráfico de la fuente con caption=.
# titanic |>
# ggplot(aes(Pclass, fill=Sex)) +
# geom_bar() +
# geom_text(stat='count', aes(label=..count..), position = position_stack(0.5, 0.0)) +
# guides(fill = guide_legend("Sexo")) + #modificar leyenda
# ylab("N° Pasajeros") + xlab("Numero de Clase")+ # etiquetas x / y
# labs(title="Número de pasajeros por Clase",
# subtitle="Datos del Titanic - 1912", caption = "Fuente: www,gist.github.com/michhar/ - titanic.csv")
4 Barras No apiladas
Se debe utilizar en la geometria de la barra la position “Dodge” , geom_bar(position = “dodge”) para crear grafica de barras con dos categorias pero, no apiladas.
# grafico de dos variables categoricas agrupadas por color
# Ordenar barras no apiladas
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar(position = "dodge")
4.1 Modificar la position de la etiqueta de datos en barras no apiladas
Se debe cambiar la posicion de los datos de texto con position = position_dodge(1.0) en la geometria de texto. El 1.0 permite colocar los datos encima de cada barra. Para modificar la posición del texto en cada barra debemos ajusatarlo con vjust (posicion vertical) y hjust (posicion horizontal).
# Modificar posicion de la leyenda de datos con,
# p
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar(position = "dodge")+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_dodge(1.0),
vjust=-0.3,
hjust=0.5
)
4.2 Girar gráfico completo
Para girar un gráfico completo utilizamos una nueva capa con la función coord_flip().
Solo giran las barras y las etiquetas. Las etiquetas de datos se le debe modificar su posición con vjust y hjust.
# Girar barras apiladas
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_stack(0.5, 0.0)
+
)coord_flip()
Giro de gráfico de barras no apiladas
# Girar barras no apiladas
# valores no ajustados
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar(position = "dodge")+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_dodge(1.0),
vjust=-0.3,
hjust=0.5
+
)coord_flip()
Girar barras no apiladas - valores ajustados fuera de la barra
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar(position = "dodge")+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_dodge(1.0),
vjust=0.5,
hjust=-0.3
+
)coord_flip()
Girar barras no apiladas - valores ajustados dentro de la barra
# Girar barras no apiladas
# valores ajustados dentro de la barra
|>
datos_pinguinos_clean ggplot(aes(fct_infreq(species), fill=sex)) +
geom_bar(position = "dodge")+
geom_text(
aes(label = after_stat(count)
),stat = "count",
position = position_dodge(1.0),
vjust=0.5,
hjust= 2.0
+
)coord_flip()
5 Recomendaciones
5.1 Recomendación 1
Muchas Categorias o etiquetas extensa
Los gráficos de barras son utilizamos con mayor frecuencia para generar ranking de una categoria o cuando el número de categorias es muy extenso. Para transformar las columnas a barras en ggplot, es necesario girar todo el gráfico utilizando coord_flip() o modificando el eje de la variable de X a Y.
<- read.csv("data/INEC-morbilidad-2023-10-14.csv")
inec <- as_tibble(inec)
inec
#Gráfico de columnas con un número considerables de categorias
# No se logra leer bien las etiquetas
|>
inec ggplot(aes(Region)) +
geom_bar()
#Gráfico de columnas transformado en barras, girando el gráfico
# en este caso se logra leer bien las etiquetas
|>
inec ggplot(aes(Region)) +
geom_bar() +
coord_flip()
# Modificando el eje de la variable Region
# el valor predeterminado es X, lo cambiamos por Y
|>
inec ggplot(aes(y=Region)) +
geom_bar()
5.2 Recomendación 2
Ordenar barras o columnas
Cuando creamos un gráfio de barras o columnas están por naturaleza se ordenan según la categoría, principalmente en orden alfabético, sin embargo podemos modificar el orden de los datos según el conteo de los datos por categoria. Para ello podemos utiliza en la estetica aes() la función fct_infreq(variable categorica) paar ordenar los datos, estos se ordenarán de menor a mayor. Si deseamos invertir el orden , debemos utilizar la función fct_rev() que invierte el orden de las categorias, por lo que es importante utilizarlas combinadas fct_rev(fct_infreq(Region)).
Ordenar gráfico de barra de menor a mayor
|>
inec ggplot(aes(fct_infreq(Region))) +
geom_bar() +
coord_flip()+
labs(x="provincias")
Ordenar gráfico de barra de mayor a menor
|>
inec ggplot(aes(fct_rev(fct_infreq(Region)))) +
geom_bar() +
coord_flip()+
labs(x="provincias")
5.3 Recomendación 3
Qué aporta el color?
Una caracteristicas muy utilizada en los gráficos de barras o columnas, es colorear las barras, sin embargo, el color en la barra es una format de categorizar los datos en el gráfico, por lo que si este no es el fin del color al utilizarlo, mejor utilizar un solo color en todas las barras, ya que probablemente sean todos de uns misma categoria.
# varios colores en las barras
|>
inec ggplot(aes(fct_rev(fct_infreq(Region)))) +
geom_bar(aes(fill=Region)) +
coord_flip()+
labs(x="provincias")
# un solo color en las barras
|>
inec ggplot(aes(fct_rev(fct_infreq(Region)))) +
geom_bar(aes(fill="salmon")) +
coord_flip()+
labs(x="provincias")+
guides(fill="none") # eliminar leyenda
5.4 Recomendación 4
Menos es más
Eliminar elementos que no aportan al gráfico como las leyendas de color, grillas y añadir valores, hacen del gráfico más simple pero con la información necesaria.
# un solo color en las barras
|>
inec ggplot(aes(fct_rev(fct_infreq(Region)))) +
geom_bar(aes(fill="salmon")) +
coord_flip()+
labs(x="provincias",
y="cantidad")+
guides(fill="none")+ # eliminar leyenda
geom_text(
aes(label = after_stat(count)
),stat = "count",
vjust=0.5,
hjust= 1.2,
size=2.9
+
)theme_classic()
5.5 Recomendación 5
Énfasis en una barra
Eliminar elemntos que no aportan al gráfico como las leyendas de color, grillas y añadir valores, hacen del gráfico más simple pero con la información necesaria.
#El número de colores esta asociado al núemero de categorias
# En el caso de Región son 9 categorias
<- c("#636363","#636363", "#636363", "#636363" ,"#636363" ,"#636363" ,"#636363","#636363", "#636363")
colores 1] <- "#F26419"
colores[
# un solo color en las barras
<- inec |>
data count(Region) |>
arrange(desc(n))
|>
data filter(n>1540) |>
ggplot(aes(x=Region, y=n)) +
geom_col(fill=colores, color="#D9D9D9") +
coord_flip()+
labs(x="provincias",
y="cantidad")+
guides(fill="none")+ # eliminar leyenda
theme_classic()
5.6 Reodernar barras - OP2
Otra forma de reordenar el gráfico de barras, es reordenar la variable categorica, esto se hace basado en que una variable categorica tipo factor contiene niveles levels de la forma en que esta ordenada la variable.
Gráfico de barra ordenado según Región (orden A-Z) Si creamos el gráfico, este ordena las barras en orden alfabetico de las categorias.
#Variable Región como factor
$Region <- as.factor(inec$Region)
inec
#Niveles de los datos Region
levels(inec$Region)
[1] "BOCAS DEL TORO" "C. NGOBE BUGLE" "CHIRIQUI" "COCLE"
[5] "COLON" "COM. KUNA YALA" "COM. NGOBE BUG" "DARIEN"
[9] "HERRERA" "KUNA YALA" "LOS SANTOS" "PANAMA ESTE"
[13] "PANAMA METRO" "PANAMA NORTE" "PANAMA OESTE" "SAN MIGUELITO"
[17] "VERAGUAS"
# un solo color en las barras
<- inec |>
data count(Region) |>
arrange(desc(n))
# Crear gráfico 1
|>
data ggplot(aes(x=Region, y=n)) +
geom_col(fill="salmon") +
coord_flip()+
labs(x="provincias",
y="cantidad")+
guides(fill="none")+ # eliminar leyenda
theme_classic()
Gráfico de barra ordenado según levels() de la variable Region
Si mostramos los datos del tibble data vemos que la variable Region no esta ordenada en orden alfabético sino por el valor de n, pero debemos inidcarle a esta variable tipo factor, que los valores levels de esa categoria deben tener el mismo orden del tibble data. Los datos del orden de la variable REgion la almacenaremos en un vector llamado ordenREgion.
# Imprimir tibble data
# datos ordenados por el valro de n
data
# A tibble: 17 × 2
Region n
<fct> <int>
1 PANAMA METRO 2090
2 COCLE 2024
3 CHIRIQUI 1914
4 VERAGUAS 1848
5 SAN MIGUELITO 1804
6 PANAMA OESTE 1760
7 HERRERA 1716
8 LOS SANTOS 1716
9 COLON 1606
10 BOCAS DEL TORO 1540
11 PANAMA ESTE 1474
12 DARIEN 1364
13 C. NGOBE BUGLE 792
14 KUNA YALA 792
15 PANAMA NORTE 638
16 COM. NGOBE BUG 594
17 COM. KUNA YALA 528
# Capturar datos del orden de la variable Region
# Region ordenado por valor de "n"
<- data$Region
ordenRegion
# Ordenar niveles de variable categorica
$Region<- factor(data$Region,
datalevels = ordenRegion)
#Niveles ordenados según tibble
levels(data$Region)
[1] "PANAMA METRO" "COCLE" "CHIRIQUI" "VERAGUAS"
[5] "SAN MIGUELITO" "PANAMA OESTE" "HERRERA" "LOS SANTOS"
[9] "COLON" "BOCAS DEL TORO" "PANAMA ESTE" "DARIEN"
[13] "C. NGOBE BUGLE" "KUNA YALA" "PANAMA NORTE" "COM. NGOBE BUG"
[17] "COM. KUNA YALA"
# Crear gráfico 2
|>
data ggplot(aes(x=Region, y=n)) +
geom_col(fill="salmon") +
coord_flip()+
labs(x="provincias",
y="cantidad")+
guides(fill="none")+ # eliminar leyenda
theme_classic()
Gráfico de barra en ordenado INVERTIDO según levels() de la variable Region
Para invertir el orden de los levels() de la variable región según orden del tibble data, debemos invertir los datos del vector ordenRegion utilizando la función rev().
# Capturar datos del orden de la variable Region
# Invertir orden de vector Región, de menor a mayor
<- rev(data$Region)
ordenRegion # Ordenar niveles de variable categorica
$Region<- factor(data$Region,
datalevels = ordenRegion)
#Niveles ordenados a la inversa
levels(data$Region)
[1] "COM. KUNA YALA" "COM. NGOBE BUG" "PANAMA NORTE" "KUNA YALA"
[5] "C. NGOBE BUGLE" "DARIEN" "PANAMA ESTE" "BOCAS DEL TORO"
[9] "COLON" "LOS SANTOS" "HERRERA" "PANAMA OESTE"
[13] "SAN MIGUELITO" "VERAGUAS" "CHIRIQUI" "COCLE"
[17] "PANAMA METRO"
# Crear gráfico 3
|>
data ggplot(aes(x=Region, y=n)) +
geom_col(fill="salmon") +
coord_flip()+
labs(x="provincias",
y="cantidad")+
guides(fill="none")+ # eliminar leyenda
theme_classic()
6 Facetas
6.1 Facetas de gráficos por columnas
Podemos En este ejemplo, la pregunta esta relacionada a unir 3 variables categóricas, Survived, Sex y Pclass, sin embargo, solo se pueden utilizar dos variables categoricas para el gráfico de barras.
Lo que hacemos es integrar una nueva variable utilizando la capa de facetas utilizando facet_grid(variable), para separar los gráficos de sobrevivientes por sexo.
|>
datos_pinguinos_clean ggplot(aes(fct_rev(fct_infreq(species)),
fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="",
x="Especies",
y="Cantidad") +
# coord_cartesian(ylim=c(0,160))+
facet_grid(.~sex)
6.2 Faceta de gráficos por filas
# Facetas de gráficos por columnas
|>
datos_pinguinos_clean ggplot(aes(fct_rev(fct_infreq(species)),
fill=species)) +
geom_bar()+
geom_text(
aes(label = after_stat(count)
),stat = "count" ,
vjust = -1.0,
colour="#a62749"
+
)theme(legend.position = "bottom")+
labs(fill="",
x="Especies",
y="Cantidad") +
facet_grid(island~.)
7 Práctica
Crear gráfico de barras apiladas utilizando los datos de *data_penguins_clean.csv. Seguir los pasos de Crear gráfico de Pastel en R de este documento.
TIPS: En el gráfico debe hacer usos de la variables sex y especies con filter(condicion) donde body_mass_g>3200**.
Gráfico de resultado: