Graficación en R

Autor/a

Carolina Domian

Carga de paquetes

library(tidyverse)
library(DT)
library(scales)
library(ggthemes)
library(plotly)

Carga de datos

paises <- read_csv("paises.csv")
#|label: tabla-paises

# Tabla de datos de paises
paises |> 
  select(NAME, CONTINENT, LIFE_EXPECTANCY, GDP_PC) |> 
  mutate(GDP_PC = round(GDP_PC, 2)) |>
  datatable(options = list(
  pageLength = 5,
  language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
  )
)

Ggplot2

ggplot(data = paises) + 
  geom_point(mapping = aes(x = GDP_PC, y = LIFE_EXPECTANCY))

PIB per cápita vs esperanza de vida al nacer

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# con tamaño de puntos correspondiente a la población
paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, size = POP_EST, color = CONTINENT)) +
  geom_point() +
  scale_size_continuous(labels = comma) +
  scale_x_continuous(labels = comma, limits = c(0, NA))

Gráfico de PIB per cápita vs esperanza de vida al nacer con línea de tendencia

paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY)) +
  geom_point() +
  geom_smooth(method = "loess") +
  scale_x_continuous(labels = comma, limits = c(0, NA))

Gráfico de dispersión del PIB per cápita vs esperanza de vida al nacer

Paneles por continente

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# Paneles por continente

#| label: grafico-04
#| warning: false
#| message: false

paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY)) +
  geom_point() +
  facet_wrap(~ CONTINENT, nrow = 4) +
  scale_x_continuous(labels = comma, limits = c(0, NA))
Warning: Removed 11 rows containing missing values or values outside the scale range
(`geom_point()`).

Títulos, etiquetas, estilos y colores

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# en África y Europa coloreado por continente
# + curva de tendencia
paises |>
  filter(CONTINENT == 'Africa' | CONTINENT == 'Europe') |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, color = CONTINENT)) +
  geom_point() +
  geom_smooth() +
  scale_x_continuous(labels = comma, limits = c(0, NA)) +
  scale_y_continuous(labels = comma, limits = c(50, 90)) +
  ggtitle("PIB per cápita vs esperanza de vida al nacer por continente") +
  xlab("PIB per cápita  (USD)") +
  ylab("Esperanza de vida (años)") +
  labs(subtitle = "Datos de África y Europa", 
       caption = "Fuentes: Natural Earth y Banco Mundial",
       color = "Continente") +
  labs(color = "Población estimada") +
theme_clean()

Plotly

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer

grafico_ggplot2 <-
  paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, color = CONTINENT)) +
  geom_point(aes(
    text = paste0(
      "País: ", NAME, "\n",
      "PIB per cápita: ", GDP_PC, "\n",
      "Esperanza de vida: ", LIFE_EXPECTANCY
    )
  )) +
  scale_x_continuous(labels = comma, limits = c(0, NA)) +
  scale_y_continuous(labels = comma, limits = c(50, 90)) +
  ggtitle("PIB per cápita vs esperanza de vida al nacer por continente") +
  xlab("PIB per cápita  (USD)") +
  ylab("Esperanza de vida (años)") +
  labs(caption = "Fuentes: Natural Earth y Banco Mundial",
       color = "Continente") +
  labs(color = "Población estimada") +
theme_clean()

# Gráfico plotly
ggplotly(grafico_ggplot2, tooltip = "text") |> 
  config(locale = 'es') # para mostrar los controles en español

TAREA 2

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# en África y Asia coloreado por continente
# + curva de tendencia

grafico_tarea <-
paises |>
  filter(CONTINENT == 'Asia' | CONTINENT == 'Africa') |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, color = CONTINENT)) +
  geom_point(aes(text = paste0(
      "País: ", NAME, "\n",
      "PIB per cápita: ", GDP_PC, "\n",
      "Esperanza de vida: ", LIFE_EXPECTANCY
    ))) +
  geom_smooth(method = 'lm') +
  scale_x_continuous(labels = comma, limits = c(0, NA)) +
  scale_y_continuous(labels = comma, limits = c(50, 90)) +
   ggtitle("PIB per cápita vs esperanza de vida al nacer en Asia y África") +
  xlab("PIB per cápita  (USD)") +
  ylab("Esperanza de vida (años)") +
  labs(subtitle = "Datos de África y Asia", 
       caption = "Fuentes: Natural Earth y Banco Mundial",
       color = "Continente") +
theme_clean()

# Gráfico plotly
ggplotly(grafico_tarea, tooltip = "text") |> 
  config(locale = 'es')
# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# + paneles por continente
paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, colour = CONTINENT)) +
  geom_point() +
  facet_wrap(~ CONTINENT, nrow = 4) +
  scale_x_continuous(labels = comma, limits = c(0, NA)) + 
  ggtitle("PIB per cápita vs esperanza de vida al nacer por continente") +
  xlab("PIB per cápita  (USD)") +
  ylab("Esperanza de vida (años)") +
  labs(caption = "Fuentes: Natural Earth y Banco Mundial",
       color = "Continente")