Graficación ggplot2 y plotly

Autor/a

MCR

Carga de bibliotecas

library(tidyverse)
library(plotly)
library(DT)
library(scales)
library(palmerpenguins)

Caraga de datos

# Carga de los datos de países
paises <-
  read_csv(
    "https://raw.githubusercontent.com/pf0953-programacionr/2024-ii/refs/heads/main/datos/natural-earth/paises-join-esperanzavida.csv"
  )
# Tabla de datos de paises
# paises |>
#   filter(SUBREGION == 'Eastern Europe' & POP_EST >= 10000000) |>
#   select(ADM0_ISO,NAME,POP_EST) |>
#   arrange(desc(POP_EST)) |>
#   datatable(
#     options = list(
#       pageLength = 10,
#       language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
#     )
#   )

paises |>
  arrange(NAME) |>
  datatable(
    options = list(
      pageLenght = 10,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

Gráficos con ggplot2

Gráficos básicos

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

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

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# coloreado por continente
paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, color = INCOME_GRP)) +
  geom_point() +
  scale_x_continuous(labels = comma, limits = c(0, NA))

paises |>
  select(NAME,GDP_PC,LIFE_EXPECTANCY) |>
  filter(GDP_PC >= 175000)
# A tibble: 3 × 3
  NAME           GDP_PC LIFE_EXPECTANCY
  <chr>           <dbl>           <dbl>
1 Liechtenstein 180857.            84.3
2 Monaco        184478.            NA  
3 Antarctica    200000             NA  
# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# coloreado por continente
paises |>
   ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, shape = CONTINENT)) +
  geom_point() +
  scale_x_continuous(labels = comma, limits = c(0, NA))

Variables adicionales en los gráficos

# Gráfico de dispersión de PIB per cápita vs esperanza de vida al nacer
# con formas y colores correspondientes al continente
paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY, shape = CONTINENT, color = CONTINENT)) +
  geom_point() +
  scale_x_continuous(labels = comma, limits = c(0, NA)) +
  scale_shape_manual(values = c(0, 1, 2, 3, 4, 5, 6, 7)) +
  scale_color_manual(values = c("red", "blue", "green", "purple", "orange", "brown", "pink", "yellow"))

# 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 dispersión de PIB per cápita vs esperanza de vida al nacer
# + curva de tendencia
paises |>
  ggplot(aes(x = GDP_PC, y = LIFE_EXPECTANCY)) +
  geom_point() +
  geom_smooth(method = 'loess', se = TRUE) +
  scale_x_continuous(labels = comma, limits = c(0, NA))

# 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))

penguins |>
  ggplot(aes(x = body_mass_g, y = bill_length_mm, color = island, size = flipper_length_mm)) +
  geom_point()

Faces o paneles

# 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)) +
  geom_point() +
  facet_wrap(~ SUBREGION, nrow = 6) +
  scale_x_continuous(labels = comma, limits = c(0, NA))