tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server) print(unique(map_df$geo)) print(unique(map_df$region)) library(shiny) library(leaflet) library(ggplot2) library(dplyr) print(unique(map_df$geo)) print(unique(map_df$region)) # print(length(map_df$geo)) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ), width=3 ), mainPanel( h1("Real house prices index"), tabsetPanel( tabPanel("Plot", plotlyOutput("final_plot")), tabPanel("Map", leafletOutput("mymap")), tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server) library(shiny) library(leaflet) library(ggplot2) library(dplyr) print(unique(map_df$geo)) print(unique(map_df$region)) # print(length(map_df$geo)) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ) width=3 library(shiny) library(leaflet) library(ggplot2) library(dplyr) print(unique(map_df$geo)) print(unique(map_df$region)) # print(length(map_df$geo)) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ), width=3 ), mainPanel( h1("Real house prices index"), tabsetPanel( tabPanel("Plot", plotlyOutput("final_plot")), tabPanel("Map", leafletOutput("mymap")), tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server) library(shiny) library(leaflet) library(ggplot2) library(dplyr) print(unique(map_df$geo)) print(unique(map_df$region)) # print(length(map_df$geo)) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes tags$head(tags$style(HTML(".checkbox {margin-left:15px}"))), checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ), width=3 ), mainPanel( h1("Real house prices index"), tabsetPanel( tabPanel("Plot", plotlyOutput("final_plot")), tabPanel("Map", leafletOutput("mymap")), tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server) library(shiny) library(leaflet) library(ggplot2) library(dplyr) print(unique(map_df$geo)) print(unique(map_df$region)) # print(length(map_df$geo)) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes # tags$head(tags$style(HTML(".checkbox {margin-left:15px}"))), checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ), width=3 ), mainPanel( h1("Real house prices index"), tabsetPanel( tabPanel("Plot", plotlyOutput("final_plot")), tabPanel("Map", leafletOutput("mymap")), tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server) library(shiny) library(leaflet) library(ggplot2) library(dplyr) # Frontend ui <- fluidPage( sidebarLayout( sidebarPanel( # Compound interest sliderInput("range", "Compound interest:",min = 0, max = 10, value = c(4,8)),textOutput("Compound interest slider"), # Checkboxes # tags$head(tags$style(HTML(".checkbox {margin-left:15px}"))), checkboxGroupInput("countries", "Chosen countries:", choiceNames = map_df$region, choiceValues = map_df$geo, selected = c("PL", "DE", "CZ"), inline = TRUE, width = "75%" ), width=3 ), mainPanel( h1("Real house prices index"), tabsetPanel( tabPanel("Plot", plotlyOutput("final_plot")), tabPanel("Map", leafletOutput("mymap")), tabPanel("Table", dataTableOutput('table')) ), width = 9 ), fluid = TRUE ) ) # Backend server <- function(input, output, session) { output$table <- renderDataTable({ merged_df[, !names(merged_df) %in% c("OBS_VALUE.x", "OBS_VALUE.y", "geometry")] }, options = list(pageLength = 10)) # Plot module output$final_plot <- renderPlotly({ final_plot <- ggplot(filter(merged_df, geo %in% input$countries), aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo, text = paste("Kraj: ", geo, "
", "Rok: ", TIME_PERIOD, "
", "Cena nieruchomości: ", house_prices_wo_hicp))) + geom_line(aes(group = geo), linetype = "dotted", size = 1) + geom_point() + geom_text(data = filter(merged_df, geo %in% input$countries) %>% group_by(geo) %>% slice(n()), aes(label = "", hjust = -0.2, size = 4)) + stat_function(fun = function(x) 100*(1+input$range[1]/100)^(x-2015), aes(colour = paste0(as.character(input$range[1]), "% Compounding")), inherit.aes = FALSE) + stat_function(fun = function(x) 100*(1+input$range[2]/100)^(x-2015), aes(colour = paste0(as.character(input$range[2]), "% Compounding")), inherit.aes = FALSE) + scale_x_continuous(breaks = seq(2010, 2024, 2)) + labs(x = "Rok", y = "Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]", color = "Countries") + theme(axis.title = element_blank()) plotly_plot <- ggplotly(final_plot, tooltip = "text") for (i in 1:length(plotly_plot$x$data)) { if (plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding") || plotly_plot$x$data[[i]]$name == paste0(as.character(input$range[1]), "% Compounding")) { plotly_plot$x$data[[i]]$hoverinfo <- "name+y" } } plotly_plot %>% layout(showlegend = TRUE, legend = list(title = list(text = "Countries"))) }) # Map module output$mymap <- renderLeaflet({ leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% addPolygons(data=mapdata_new, fillOpacity = 0.6, # Przezroczystość stroke = TRUE, # Borders visible color = "grey", # Border color weight = 1, fillColor = ~qpal(mapdata_new$substr_house_prices_wo_hicp), popup = popup_content, popupOptions = popupOptions(maxWidth ="100%", closeOnClick = TRUE) ) %>% setView( lat = 49, lng = 14, zoom = 4) %>% addLegend("bottomright", colors = qpal_colors, title = " Real house prices \n index (2022) ", labels = qpal_labs, opacity = 1) }) # End of map module }# End of server # Run shinyApp(ui, server)