Add bar plot to right panel
This commit is contained in:
@@ -6,6 +6,7 @@ library(sf)
|
|||||||
library(htmltools)
|
library(htmltools)
|
||||||
library(dplyr)
|
library(dplyr)
|
||||||
library(purrr)
|
library(purrr)
|
||||||
|
library(ggplot2)
|
||||||
|
|
||||||
# Json of Crime Reports
|
# Json of Crime Reports
|
||||||
crime_json <- fromJSON(file="data.json")
|
crime_json <- fromJSON(file="data.json")
|
||||||
@@ -30,6 +31,29 @@ map_data_to_table <- function(bezirk, stadtteil, year) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
map_data_to_top3_plot <- function(bezirk, stadtteil, year) {
|
||||||
|
year <- as.character(trimws(year))
|
||||||
|
req(bezirk)
|
||||||
|
req(stadtteil)
|
||||||
|
req(year)
|
||||||
|
komplettes_tibble <- map_df(names(crime_json[[bezirk]][[stadtteil]]), function(crime) {
|
||||||
|
row <- crime_json[[bezirk]][[stadtteil]][[crime]][[year]]
|
||||||
|
tibble(
|
||||||
|
Name = crime,
|
||||||
|
Erfasst = as.integer(row[["Erfasste Fälle"]]),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
# Sortieren und Beschränken auf die Ränge 2, 3 und 4
|
||||||
|
top_3_tibble <- komplettes_tibble %>%
|
||||||
|
# Sortieren: Absteigend nach "Erfasste Fälle". Der höchste Wert ist nun in Zeile 1.
|
||||||
|
arrange(desc(Erfasst)) %>%
|
||||||
|
# Beschränken: Wählt die Zeilen 2, 3 und 4 aus.
|
||||||
|
# Dies sind die Ränge 2, 3 und 4.
|
||||||
|
slice(2:4)
|
||||||
|
|
||||||
|
return(top_3_tibble)
|
||||||
|
}
|
||||||
|
|
||||||
#GeoJson for Bezirke
|
#GeoJson for Bezirke
|
||||||
geo_bezirke <- st_read("geobezirke-parsed.json")
|
geo_bezirke <- st_read("geobezirke-parsed.json")
|
||||||
geo_bezirke <- st_transform(geo_bezirke, crs = 4326)
|
geo_bezirke <- st_transform(geo_bezirke, crs = 4326)
|
||||||
@@ -258,11 +282,22 @@ server <- function(input, output, session) {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
output$txt_map_selection_bezirk <- renderText({
|
output$txt_map_selection_bezirk <- renderText({
|
||||||
paste("Bezirk:", currently_selected_bezirk())
|
currently_selected_bezirk()
|
||||||
})
|
})
|
||||||
output$txt_map_selection_stadtteil <- renderText({
|
output$txt_map_selection_stadtteil <- renderText({
|
||||||
paste("Stadtteil:", currently_selected_stadtteil())
|
currently_selected_stadtteil()
|
||||||
})
|
})
|
||||||
|
output$grph_top3 <- renderPlot({
|
||||||
|
data_tibble <- map_data_to_top3_plot(
|
||||||
|
bezirk = currently_selected_bezirk(),
|
||||||
|
stadtteil = currently_selected_stadtteil(),
|
||||||
|
year = "2024"
|
||||||
|
)
|
||||||
|
req(nrow(data_tibble) > 0)
|
||||||
|
ggplot(data_tibble, aes(x = Name, y = Erfasst, fill = Name)) +
|
||||||
|
geom_col()
|
||||||
|
})
|
||||||
|
|
||||||
output$tbl_2024 <- renderTable(
|
output$tbl_2024 <- renderTable(
|
||||||
map_data_to_table(
|
map_data_to_table(
|
||||||
bezirk = currently_selected_bezirk(),
|
bezirk = currently_selected_bezirk(),
|
||||||
|
|||||||
Reference in New Issue
Block a user