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
```