#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
# https://shiny.posit.co/
#
library(shiny)
library(plotly)
source("Comp6.R")
# Define UI for application that draws a histogram
ui <- fluidPage(
#Titulo de la aplicación
titlePanel("Aplicación politicas de inventario"),
#Definir el recuadro de la aplicación
sidebarLayout(
#Agregar un panel lateral dentro del recuadro
sidebarPanel(
#crear un objeto para que el usuario modifique la demanda
sliderInput(inputId = "TasaDemanda",
label = "Tasa de demanda semanal (cajas/semana)",
min = 0,
max = 30,
value = 15)
),
#Crear el panel principal para mostrar las graficas
mainPanel(
#imprimir grafica de costos
plotlyOutput(outputId = "Graf_Cost_Tot")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
output$Graf_Cost_Tot = renderPlotly({
InfoCostos = Shiny_function(input$TasaDemanda)
#Scatter -> crea un grafico de dispersion, mode -> Representación de los puntos
plot_ly(InfoCostos, x = ~num_sem, y= ~cost_Sem_Pactual, name = "P. Actual", type = "scatter",
mode = "lines+markers")%>%
add_trace(y = ~cost_Sem_Pnueva, name = "P.nueva", mode = "lines+markers")%>%
#con la funcion layout se etiqueta el grafico
layout(title = "Costo por politica an las proximas 10 semanas",
xaxis = list(title = "semana"),
yaxis = list(title = "costo"))
})
}
# Run the application
shinyApp(ui = ui, server = server)
LS0tDQp0aXRsZTogIlNoaW55Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIA0KDQpgYGB7cn0NCiMNCiMgVGhpcyBpcyBhIFNoaW55IHdlYiBhcHBsaWNhdGlvbi4gWW91IGNhbiBydW4gdGhlIGFwcGxpY2F0aW9uIGJ5IGNsaWNraW5nDQojIHRoZSAnUnVuIEFwcCcgYnV0dG9uIGFib3ZlLg0KIw0KIyBGaW5kIG91dCBtb3JlIGFib3V0IGJ1aWxkaW5nIGFwcGxpY2F0aW9ucyB3aXRoIFNoaW55IGhlcmU6DQojDQojICAgIGh0dHBzOi8vc2hpbnkucG9zaXQuY28vDQojDQoNCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KHBsb3RseSkNCnNvdXJjZSgiQ29tcDYuUiIpDQojIERlZmluZSBVSSBmb3IgYXBwbGljYXRpb24gdGhhdCBkcmF3cyBhIGhpc3RvZ3JhbQ0KdWkgPC0gZmx1aWRQYWdlKA0KICAjVGl0dWxvIGRlIGxhIGFwbGljYWNpw7NuDQogIHRpdGxlUGFuZWwoIkFwbGljYWNpw7NuIHBvbGl0aWNhcyBkZSBpbnZlbnRhcmlvIiksDQogICNEZWZpbmlyIGVsIHJlY3VhZHJvIGRlIGxhIGFwbGljYWNpw7NuDQogIHNpZGViYXJMYXlvdXQoDQogICAgI0FncmVnYXIgdW4gcGFuZWwgbGF0ZXJhbCBkZW50cm8gZGVsIHJlY3VhZHJvDQogICAgc2lkZWJhclBhbmVsKA0KICAgICAgI2NyZWFyIHVuIG9iamV0byBwYXJhIHF1ZSBlbCB1c3VhcmlvIG1vZGlmaXF1ZSBsYSBkZW1hbmRhDQogICAgICBzbGlkZXJJbnB1dChpbnB1dElkID0gIlRhc2FEZW1hbmRhIiwNCiAgICAgICAgICAgICAgICAgIGxhYmVsID0gIlRhc2EgZGUgZGVtYW5kYSBzZW1hbmFsIChjYWphcy9zZW1hbmEpIiwNCiAgICAgICAgICAgICAgICAgIG1pbiA9IDAsDQogICAgICAgICAgICAgICAgICBtYXggPSAzMCwNCiAgICAgICAgICAgICAgICAgIHZhbHVlID0gMTUpDQogICAgICAgIA0KICAgICAgKSwNCiAgICANCiAgICAjQ3JlYXIgZWwgcGFuZWwgcHJpbmNpcGFsIHBhcmEgbW9zdHJhciBsYXMgZ3JhZmljYXMNCiAgICBtYWluUGFuZWwoDQogICAgICAjaW1wcmltaXIgZ3JhZmljYSBkZSBjb3N0b3MNCiAgICAgIHBsb3RseU91dHB1dChvdXRwdXRJZCA9ICJHcmFmX0Nvc3RfVG90IikNCiAgICApDQogICkNCikNCg0KDQojIERlZmluZSBzZXJ2ZXIgbG9naWMgcmVxdWlyZWQgdG8gZHJhdyBhIGhpc3RvZ3JhbQ0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQpIHsNCiAgb3V0cHV0JEdyYWZfQ29zdF9Ub3QgPSByZW5kZXJQbG90bHkoew0KICAgIEluZm9Db3N0b3MgPSBTaGlueV9mdW5jdGlvbihpbnB1dCRUYXNhRGVtYW5kYSkNCiAgICANCiAgICAjU2NhdHRlciAtPiBjcmVhIHVuIGdyYWZpY28gZGUgZGlzcGVyc2lvbiwgbW9kZSAtPiBSZXByZXNlbnRhY2nDs24gZGUgbG9zIHB1bnRvcw0KICAgIHBsb3RfbHkoSW5mb0Nvc3RvcywgeCA9IH5udW1fc2VtLCB5PSB+Y29zdF9TZW1fUGFjdHVhbCwgbmFtZSA9ICJQLiBBY3R1YWwiLCB0eXBlID0gInNjYXR0ZXIiLA0KICAgICAgICAgICAgbW9kZSA9ICJsaW5lcyttYXJrZXJzIiklPiUNCiAgICAgIGFkZF90cmFjZSh5ID0gfmNvc3RfU2VtX1BudWV2YSwgbmFtZSA9ICJQLm51ZXZhIiwgbW9kZSA9ICJsaW5lcyttYXJrZXJzIiklPiUNCiAgICAgICNjb24gbGEgZnVuY2lvbiBsYXlvdXQgc2UgZXRpcXVldGEgZWwgZ3JhZmljbw0KICAgICAgbGF5b3V0KHRpdGxlID0gIkNvc3RvIHBvciBwb2xpdGljYSBhbiBsYXMgcHJveGltYXMgMTAgc2VtYW5hcyIsDQogICAgICAgICAgICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gInNlbWFuYSIpLA0KICAgICAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJjb3N0byIpKQ0KICB9KQ0KfQ0KDQojIFJ1biB0aGUgYXBwbGljYXRpb24gDQpzaGlueUFwcCh1aSA9IHVpLCBzZXJ2ZXIgPSBzZXJ2ZXIpDQoNCmBgYA0KDQoNCg==