Add bar plot to right panel
This commit is contained in:
@@ -6,6 +6,7 @@ library(sf)
|
||||
library(htmltools)
|
||||
library(dplyr)
|
||||
library(purrr)
|
||||
library(ggplot2)
|
||||
|
||||
# Json of Crime Reports
|
||||
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
|
||||
geo_bezirke <- st_read("geobezirke-parsed.json")
|
||||
geo_bezirke <- st_transform(geo_bezirke, crs = 4326)
|
||||
@@ -258,11 +282,22 @@ server <- function(input, output, session) {
|
||||
)
|
||||
})
|
||||
output$txt_map_selection_bezirk <- renderText({
|
||||
paste("Bezirk:", currently_selected_bezirk())
|
||||
currently_selected_bezirk()
|
||||
})
|
||||
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(
|
||||
map_data_to_table(
|
||||
bezirk = currently_selected_bezirk(),
|
||||
|
||||
Reference in New Issue
Block a user