###### Universidad Central del Ecuador######
###### Carrera de Petróleos  #####

library(readxl)
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(ggplot2)
library(readr) 

# Cargar datos
datasetf <- read.csv("datasetf.csv") 
View(datasetf)

# Agrupar por Liquid Type y asignar nombre a los NA
Tabla_liquid <- datasetf %>%
  count(Liquid_Type = datasetf[["Liquid.Type"]], name = "ni") %>%
  # Asignar nombre "NO ESPECIFICADO" a los NA
  mutate(Liquid_Type = ifelse(is.na(Liquid_Type), "NO ESPECIFICADO", Liquid_Type)) %>%
  arrange(desc(ni))

# NOMBRES CORTOS PARA MEJOR VISUALIZACIÓN
nombres_muy_cortos <- c(
  "CRUDE OIL" = "CRUDE",
  "REFINED AND/OR PETROLEUM PRODUCT (NON-HVL), LIQUID" = "PETROLEUM",
  "HVL OR OTHER FLAMMABLE OR TOXIC FLUID, GAS" = "HVL GAS", 
  "CO2 (CARBON DIOXIDE)" = "CO2",
  "BIOFUEL / ALTERNATIVE FUEL(INCLUDING ETHANOL BLENDS)" = "BIOFUEL",
  "NO ESPECIFICADO" = "NO ESPEC."
)

# Aplicar nombres cortos
Tabla_liquid$Liquid_Type_short <- nombres_muy_cortos[Tabla_liquid$Liquid_Type]

# Si algún nombre no tiene abreviatura, mantener el original
Tabla_liquid$Liquid_Type_short <- ifelse(is.na(Tabla_liquid$Liquid_Type_short), 
                                         Tabla_liquid$Liquid_Type, 
                                         Tabla_liquid$Liquid_Type_short)

# TDFfrecuencias
Tabla_liquid$hi <- Tabla_liquid$ni / sum(Tabla_liquid$ni)
Tabla_liquid$hi_porcentaje <- round(Tabla_liquid$hi * 100, 3)

# Agregar TOTAL
total_fila_liquid <- data.frame(
  Liquid_Type = "TOTAL",
  Liquid_Type_short = "TOTAL",
  ni = sum(Tabla_liquid$ni),
  hi = 1,
  hi_porcentaje = 100.000
)

Tabla_completa_liquid <- rbind(Tabla_liquid, total_fila_liquid)
Tabla_final_liquid <- Tabla_completa_liquid[, c("Liquid_Type", "Liquid_Type_short", "ni", "hi_porcentaje")]
names(Tabla_final_liquid)[names(Tabla_final_liquid) == "hi_porcentaje"] <- "hi"

View(Tabla_final_liquid)
Tabla_final_liquid
##                                            Liquid_Type Liquid_Type_short   ni
## 1                                            CRUDE OIL             CRUDE 1398
## 2   REFINED AND/OR PETROLEUM PRODUCT (NON-HVL), LIQUID         PETROLEUM  939
## 3           HVL OR OTHER FLAMMABLE OR TOXIC FLUID, GAS           HVL GAS  418
## 4                                 CO2 (CARBON DIOXIDE)               CO2   38
## 5 BIOFUEL / ALTERNATIVE FUEL(INCLUDING ETHANOL BLENDS)           BIOFUEL    2
## 6                                                TOTAL             TOTAL 2795
##        hi
## 1  50.018
## 2  33.596
## 3  14.955
## 4   1.360
## 5   0.072
## 6 100.000
# Filtrar datos (sin TOTAL)
datos_grafica_liquid <- Tabla_final_liquid[Tabla_final_liquid$Liquid_Type != "TOTAL", ]

# Gráfico 1: Barras para ni

par(mar = c(6, 4, 4, 2) + 0.1)

barplot(datos_grafica_liquid$ni, 
        names.arg = datos_grafica_liquid$Liquid_Type_short,
        col = "#4ECDC4",
        main = "Gráfica No.1: 
        Distribución de Tipo de Líquido",
        ylab = "Cantidad",
        las = 2,  
        cex.names = 0.9,  # Texto más grande porque los nombres son cortos
        ylim = c(0, max(datos_grafica_liquid$ni) * 1.1))

# Gráfico 2: Barras para hi
barplot(datos_grafica_liquid$hi, 
        names.arg = datos_grafica_liquid$Liquid_Type_short,
        col = "#4ECDC4",
        main = "Gráfica No.2:
        Distribución de Tipo de Líquido",
        ylab = "Proporción",
        las = 2,
        cex.names = 0.9,
        ylim = c(0, max(datos_grafica_liquid$hi) * 1.1))

# Gráfico 3: Porcentaje (hi * 100)
barplot(datos_grafica_liquid$hi * 100, 
        names.arg = datos_grafica_liquid$Liquid_Type_short,
        col = "#4ECDC4", 
        main = "Gráfica Nº3: 
        Distribución de Tipo de Líquido", 
        las = 2, 
        cex.names = 0.9,
        ylab = "Porcentaje (%)")

# Gráfico 4: Pastel

par(mar = c(2, 2, 2, 12))  
azules_degradado <- c("#1f77b4", "#279ece", "#4fb4d8", "#7bcde8", "#a6e3f7", "#d4f1f9")

pie(datos_grafica_liquid$hi * 100,
    labels = NA,  
    col = azules_degradado,
    main = "Gráfica Nº4:
    Distribución de Tipo de Líquido",
    radius = 1)


# Leyenda 
legend(x = 1.2, y = 1,  
       legend = paste0(datos_grafica_liquid$Liquid_Type_short, " - ",
                       round(datos_grafica_liquid$hi * 100, 1), "%",
                       " (", datos_grafica_liquid$ni, " casos)"),
       fill = azules_degradado,
       bty = "t",        
       cex = 0.7,        
       xpd = TRUE)