|
Autor: Email: RPubs: Twitter: Linkedin: |
Jack Bedoya Acosta |
|
|
En esta Aplicación Shiny, se tiene un dashboard con detalles como Mapas temáticos Graficos dinamicos entre otros.
Dolares/KG de Banano por país:
## 1- Creamos el UI
## 2- Creamos el Dashboard
ui <- dashboardPage(skin = "purple",
## 3- Ponemos título al Dashboard
dashboardHeader(title = "Precios del Banano",
titleWidth = 260,
dropdownMenu(type = "messages",
messageItem(
from = "Precio Internacional del Banano",
message = "Responsables Analisis de Negocios",icon = icon("box-open")))),
## 4- Desplegamos la lista de Menú
dashboardSidebar(
sidebarMenu(
menuItem("Resumen", tabName = "dashboard1", icon = icon("file-contract")),
menuItem("Análisis", icon = icon("project-diagram"), tabName = "dashboard3"),
menuItem("Fuentes", icon = icon("info-circle"), tabName = "dashboard4")
)
),
## 5- Creamos el cuerpo de cada Lista de Menú donde estan todas las variables calculadas en la secion server
dashboardBody(
tabItems(
tabItem(tabName = "dashboard1",
fluidRow(
column(width=2),
column(tags$style(".fa-database {color:#E87722}"),
h3(p(em("Precios del Banano"),style="color:black;text-align:center")),
width=8,style="background-color:lavender;border-radius: 10px")),
br(),
fluidRow(column(width=2, icon("scroll","fa-5x"),align="center"),
#fluidRow(column(width=2, img(src = "grupasa.png", height = 72, width = 72),align="center"),
column(
p("Esta serie da los precios promedio al por mayor de banano por paÃs de origen.
Los precios son promedios nacionales de los precios más habituales cobrados por
las bananas en los mercados mayoristas de Birmingham y Londres.",style="color:black;text-align:justify"),
br(),
p("Se muestra Información como Paises:",style="color:black;text-align:justify"),
br(),
p("1. Ecuador ",br(),br(
"2. Costa Rica "),br(
"3. Colombia "),br(
"4. Filipinas: "),br(
"5. Guatemala"),br(
"Entre Otros"),style="color:black;text-align:left;background-color:white;padding:15px;border:1px solid black"),
br(),
p(),
width=8,style="background-color:lavender;border-radius: 10px"),
br(),
hr()
),
br(),
hr(),
p(em("Realizado por:"),br("Jack Bedoya"),style="text-align:center; font-family: times")),
tabItem(tabName = "dashboard3",
fluidRow(column(width=2),
column(tags$style(".fa-database {color:#E87722}"),
h3(p(em("Detalle del Precio por Banano por PaÃs"),style="color:black;text-align:center")),
width=8,style="background-color:lavender;border-radius: 10px")),
br(),
fluidRow(
box(
title = "Seleccionar Pais", width = 6, height = 150,solidHeader = TRUE, status = "primary",
selectInput(inputId = "selectorLocal2",
label = "",
choices= Banano %>% select(Pais)%>% pull(Pais) %>% unique(),
selected = c("Colombia","Ecuador","Costa Rica"),
multiple = T)
),
box(
title = "Seleccione Año", width = 6,height = 150, solidHeader = TRUE,status = "primary",
sliderInput("selectorPromotor2", "" ,min = min(Banano$Anio,na.rm = TRUE) , max = max(Banano$Anio,na.rm = TRUE),
value = c(2018,2022))
)),
br(),
fluidRow(
box(
title = "Dólares por Kilogramo de Banano", width = 12, height = 460,solidHeader = TRUE, status = "primary",
plotOutput("covid")
)),
br(),
fluidRow(
box(
title = "Paises Seleccionados", width = 12, height = 460,solidHeader = TRUE, status = "primary",
column(width=1),
column(plotOutput("covid2"),width=10),
column(width=1)
)),
br(),
fluidRow(
hr(),
h3(p(em("Base de Datos Utilizada "),icon("database",lib = "font-awesome"),style="color:black;text-align:center")),
fluidRow(column(width = 1),
column(DT::dataTableOutput("Rdata_pais3"),
width = 10),
column(width = 1)),
fluidRow(column(width = 1),
column(downloadButton("downloadData", "Download"),
width = 10),
column(width = 1))),
hr(),
p(em("Realizado por:"),br("Jack Bedoya"),style="text-align:center; font-family: times")),
tabItem(tabName = "dashboard4",
fluidRow(
column(width=2),
column(tags$style(".fa-database {color:#E87722}"),
h3(p(em("Fuente de Información"),style="color:black;text-align:center")),
width=8,style="background-color:lavender;border-radius: 10px")),
br(),
fluidRow(column(width=2, icon("scroll","fa-5x"),align="center"),
#fluidRow(column(width=2, img(src = "grupasa.png", height = 72, width = 72),align="center"),
column(
p("Toda la infomración esta recolectada desde una sola fuente de información.
La cual cual fue revisada y analizada de manera exhaustiva.",style="color:black;text-align:justify"),
p(""),
p("Esta Pagina facilita sin numero de Informacion de varias ramas: GOV.UK",style="color:black;text-align:justify"),
p(""),
p("La Página web es:",style="color:black;text-align:justify"),
tags$a(href = "https://www.gov.uk/", "https://www.gov.uk/"),
p(""), width=8,style="background-color:lavender;border-radius: 10px")),
br(),
hr(),
p(em("Realizado por:"),br("Jack Bedoya"),style="text-align:center; font-family: times"))
)
)
)
## 6- Creamos el Server
server <- function(input, output) {
## 7- Creamos las variables calculadas
vTAS_filtrado <- reactive({
Banano %>% filter(Anio %in% c(min(input$selectorPromotor2):max(input$selectorPromotor2)), Pais %in% input$selectorLocal2 ) %>% select(-1)
})
vTAS_filtrado2 <- reactive({
worlds_jb %>% filter(Pais %in% input$selectorLocal2 )
})
output$Rdata_pais3 <- renderDT({
vTAS_filtrado() %>%
datatable(options = list(scrollX=T))
})
## 8- Creamos los resultados con las variables calculadas
output$covid <- renderPlot({
ggplot(vTAS_filtrado(), aes(x= Semanas, y = USD, group = Pais, colour =Pais)) +
geom_line(linetype="solid", size=0.5) +
geom_point()+
geom_path()+
labs(title = "",
x = "Semanas Registradas",
y = "$USD/KG",
caption = "Fuente: GOV.UK") +
guides(colour = guide_legend(title=NULL))+
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1)))+
theme(axis.title.y = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1)))+
theme(axis.text.x = element_text(size=rel(0.1),angle = 90))
})
output$covid2 <- renderPlot({
ggplot(vTAS_filtrado2()) +
geom_map(aes(map_id = id, fill=Pais), show.legend = TRUE,map = world_map) +
geom_polygon(data = world_map, aes(x = long, y = lat, group = group), colour = 'black', fill = NA) +
expand_limits(x = world_map$long, y = world_map$lat) +
labs(title = "",
caption = "Fuente: GOV.UK") +
theme(
axis.line = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(colour= "gray", size= 1))
})
output$downloadData <- downloadHandler(
filename = function() {
paste("Precios_Banano", ".xlsx", sep = "")
},
content = function(file) {
write.xlsx(vTAS_filtrado(), file, row.names = TRUE)
}
)
}
## 7- Cerramos el Proyecto
shinyApp(ui, server)
Una versión de lo presentadose lo visualiza en el siguiente Link: https://jack-bedoya.shinyapps.io/Banano_GPSA/