# ============================================================
# LIBRERÍAS
# ============================================================
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readxl)

# ============================================================
# CARGA DE DATOS
# ============================================================
datos <- read_excel("C:/Users/USUARIO/Downloads/datos_nuevoartes.xlsx")

# ============================================================
# CONSOLIDACIÓN DE CATEGORÍAS
# ============================================================
datos <- datos %>%
  mutate(
    landslide_category_consol = case_when(
      landslide_category %in% c("debris_flow", "earth_flow", "lahar") ~
        "Flujos de suelo y rocas",
      landslide_category %in% c("creep", "topple", "translational_slide") ~
        "Deformación lenta del terreno",
      landslide_category %in% c("complex", "other", "unknown") ~
        "Movimientos complejos o no definidos",
      landslide_category %in% c("riverbank_collapse", "snow_avalanche") ~
        "Otros movimientos poco comunes",
      landslide_category == "landslide" ~
        "Deslizamiento de tierra",
      landslide_category == "mudslide" ~
        "Deslizamiento de lodo",
      landslide_category == "rock_fall" ~
        "Caída de rocas",
      TRUE ~ landslide_category
    )
  )

# ============================================================
# TABLA DE FRECUENCIAS SIMPLES
# ============================================================
TDFMovimientos <- datos %>%
  filter(!is.na(landslide_category_consol)) %>%
  count(landslide_category_consol, name = "ni") %>%
  mutate(
    hi = round((ni / sum(ni)) * 100, 2)
  )

# ============================================================
# VARIABLES AUXILIARES
# ============================================================
categorias <- TDFMovimientos$landslide_category_consol
ni <- TDFMovimientos$ni
hi <- TDFMovimientos$hi

# ============================================================
# DIAGRAMAS DE BARRAS
# ============================================================

# 1. FRECUENCIA ABSOLUTA LOCAL (ni)
barplot(
  ni,
  main = "Gráfica Nº1: Frecuencia de los tipos de movimientos en masa (Local)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Cantidad",
  col = "skyblue",
  names.arg = categorias,
  las = 2
)

# 2. FRECUENCIA ABSOLUTA GLOBAL (ni)
barplot(
  ni,
  main = "Gráfica Nº2: Frecuencia de los tipos de movimientos en masa (Global)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Cantidad",
  col = "skyblue",
  names.arg = categorias,
  las = 2,
  ylim = c(0, max(ni) * 1.2)
)

# 3. FRECUENCIA RELATIVA LOCAL (hi)
barplot(
  hi,
  main = "Gráfica Nº3: Porcentaje de los tipos de movimientos en masa (Local)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Porcentaje (%)",
  col = "steelblue",
  names.arg = categorias,
  las = 2
)

# 4. FRECUENCIA RELATIVA GLOBAL (hi)
barplot(
  hi,
  main = "Gráfica Nº4: Porcentaje de los tipos de movimientos en masa (Global)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Porcentaje (%)",
  col = "steelblue",
  names.arg = categorias,
  las = 2,
  ylim = c(0, 100)
)

# ============================================================
# DIAGRAMA CIRCULAR
# ============================================================

# Márgenes grandes para leyenda externa
par(mar = c(5, 4, 4, 10))
par(xpd = TRUE)

colores_pie <- c(
  "#1f78b4", "#33a02c", "#e31a1c",
  "#ff7f00", "#6a3d9a", "#b15928", "#a6cee3"
)

# Gráfico circular con porcentajes dentro
pie(
  hi,
  labels = paste0(hi, "%"),
  main = "Gráfica Nº5: Distribución porcentual de los tipos de movimientos en masa",
  col = colores_pie,
  cex = 0.9
)

# Leyenda fuera del gráfico
legend(
  x = 1.2, y = 0,
  legend = categorias,
  fill = colores_pie,
  cex = 0.85,
  bty = "n"
)

# Restaurar parámetros gráficos
par(xpd = FALSE)