library(readxl)
library(dplyr)

Bins<-read_excel("C:/Users/matia/OneDrive/Escritorio/EVA 3_Almacenamiento/Base de datos unificado mio.xlsx")
library(dplyr)
library(plotly)

Bins_Ready <- Bins 


names(Bins_Ready)[grep("Nombre.*Sucursal", names(Bins_Ready), ignore.case=T)[1]] <- "Nombre Sucursal Origen"
names(Bins_Ready)[grep("Planta|Destino", names(Bins_Ready), ignore.case=T)[1]] <- "Planta"
names(Bins_Ready)[grep("500", names(Bins_Ready))[1]] <- "BINS500"
names(Bins_Ready)[grep("1000", names(Bins_Ready))[1]] <- "BINS1000"
names(Bins_Ready)[grep("Toneladas", names(Bins_Ready), ignore.case=T)[1]] <- "Toneladas"

Datos_Procesados <- Bins_Ready %>%
  mutate(
    BINS500 = as.numeric(BINS500),
    BINS1000 = as.numeric(BINS1000),
    BINS500 = ifelse(is.na(BINS500), 0, BINS500),
    BINS1000 = ifelse(is.na(BINS1000), 0, BINS1000),
    Total_Unidades = BINS500 + BINS1000,
    Tipo_Bin = case_when(
      BINS500 > 0 & BINS1000 > 0 ~ "Mixto (500 y 1000)",
      BINS500 > 0 ~ "BINS 500",
      BINS1000 > 0 ~ "BINS 1000",
      TRUE ~ "Otros/Sin Bins"
    )
  ) %>%
  filter(Tipo_Bin != "Otros/Sin Bins")

Resumen_Grafico <- Datos_Procesados %>%
  group_by(Tipo_Bin, `Nombre Sucursal Origen`, Planta) %>%
  summarise(
    Frecuencia = n(),
    Promedio_Unidades = mean(Total_Unidades, na.rm = TRUE), 
    Total_Toneladas = sum(Toneladas, na.rm = TRUE),        
    .groups = 'drop'
  )

modelo_lineal <- lm(Total_Toneladas ~ Promedio_Unidades, data = Resumen_Grafico)

Resumen_Grafico$Tendencia <- fitted(modelo_lineal)

grafico <- plot_ly(data = Resumen_Grafico) %>%

  add_trace(
    x = ~Promedio_Unidades,      
    y = ~Total_Toneladas,
    type = 'scatter',
    mode = 'markers',
    color = ~Tipo_Bin,
    size = ~Frecuencia,          
    sizes = c(10, 50),
    marker = list(opacity = 0.7, line = list(width = 1, color = 'SlateGrey')),
    text = ~paste(
      "<b>Origen:</b>", `Nombre Sucursal Origen`, "<br>",
      "<b>Destino:</b>", Planta, "<br>",
      "<b>Promedio Unidades:</b>", round(Promedio_Unidades, 1), "<br>",
      "<b>Total Toneladas:</b>", round(Total_Toneladas, 1)
    ),
    hoverinfo = "text",
    name = ~Tipo_Bin 
  ) %>%
  
  add_lines(
    x = ~Promedio_Unidades, 
    y = ~Tendencia, 
    line = list(color = 'black', width = 2, dash = 'dash'),
    name = "Tendencia Lineal (Regresión)",
    showlegend = TRUE,
    inherit = FALSE
  ) %>%
  layout(
    title = "Relación Lineal: Unidades vs Toneladas",
    xaxis = list(title = "Promedio de Unidades por Retiro (Numérico)"),
    yaxis = list(title = "Total Toneladas Transportadas"),
    legend = list(title = list(text = "Tipo de Bin"))
  )

# Visualizar
grafico

```