Add styling to Graph
This commit is contained in:
@@ -7,6 +7,8 @@ library(htmltools)
|
||||
library(dplyr)
|
||||
library(purrr)
|
||||
library(ggplot2)
|
||||
library(ggthemes)
|
||||
library(stringr)
|
||||
|
||||
# Json of Crime Reports
|
||||
crime_json <- fromJSON(file="data.json")
|
||||
@@ -39,7 +41,7 @@ map_data_to_top3_plot <- function(bezirk, stadtteil, year) {
|
||||
komplettes_tibble <- map_df(names(crime_json[[bezirk]][[stadtteil]]), function(crime) {
|
||||
row <- crime_json[[bezirk]][[stadtteil]][[crime]][[year]]
|
||||
tibble(
|
||||
Name = crime,
|
||||
Name = str_wrap(crime, width = 25),
|
||||
Erfasst = as.integer(row[["Erfasste Fälle"]]),
|
||||
)
|
||||
})
|
||||
@@ -50,7 +52,8 @@ map_data_to_top3_plot <- function(bezirk, stadtteil, year) {
|
||||
# Beschränken: Wählt die Zeilen 2, 3 und 4 aus.
|
||||
# Dies sind die Ränge 2, 3 und 4.
|
||||
slice(2:4)
|
||||
|
||||
#top_3_tibble$Name_wrapped <- str_wrap(top_3_tibble$Name, width = 25) #mit wrap ein umbruch bei den namen eingefügt
|
||||
|
||||
return(top_3_tibble)
|
||||
}
|
||||
|
||||
@@ -118,6 +121,7 @@ ui <- function() {
|
||||
),
|
||||
plotOutput("grph_top3"),
|
||||
#tableOutput("tbl_2024"),
|
||||
|
||||
),
|
||||
col_widths = c(8, 4),
|
||||
),
|
||||
@@ -142,7 +146,7 @@ ui <- function() {
|
||||
),
|
||||
)
|
||||
),
|
||||
nav_panel("Statistik", "Statistik_inhalt"),
|
||||
nav_panel("Vergleich", "Vergleich_inhalt"),
|
||||
nav_panel("Wiki",
|
||||
accordion(
|
||||
accordion_panel(
|
||||
@@ -294,9 +298,53 @@ server <- function(input, output, session) {
|
||||
year = "2024"
|
||||
)
|
||||
req(nrow(data_tibble) > 0)
|
||||
ggplot(data_tibble, aes(x = Name, y = Erfasst, fill = Name)) +
|
||||
geom_col()
|
||||
})
|
||||
ggplot(data_tibble, aes(x = Name, y = Erfasst)) +
|
||||
geom_col(width = 0.7, fill = "#7bb5ab") + # <-- Festlegen der Farbe direkt an allen Spalten angeknüpft nicht mehr anhand der Kategorie
|
||||
geom_text(
|
||||
# Die Text-Ästhetik soll der Wert aus der Spalte 'Erfasst' sein
|
||||
aes(label = format(Erfasst, big.mark = ".", decimal.mark = ",")),
|
||||
# Platzierung: Y-Wert des Textes = Wert der Spalte + Offset
|
||||
# Wir verwenden den Offset, um den Text knapp über den Balken zu platzieren
|
||||
# Wenn Sie den Text IN den Balken setzen möchten, setzen Sie y=Erfasst/2
|
||||
vjust = -0.5, # Vertikale Ausrichtung: Negativer Wert platziert Text über dem Punkt
|
||||
size = 4,
|
||||
fontface = "bold"
|
||||
) +
|
||||
labs(
|
||||
title = "Statistisch am häufigsten polizeilich registrierte Straftaten",
|
||||
x = "Straftatbestand",
|
||||
y = "Anzahl erfasster Fälle"
|
||||
) +
|
||||
theme_pander() + #neues theme aus ggthemes packages
|
||||
# NEUE ANPASSUNG: Drehen der X-Achsen-Beschriftungen
|
||||
theme(
|
||||
plot.background = element_rect(
|
||||
color = "darkgrey", # Farbe des Rahmens
|
||||
linewidth = 0.4, # Dicke des Rahmens
|
||||
fill = NA # Füllung: NA = transparent
|
||||
),
|
||||
plot.margin = margin(t = 20, r = 20, b = 20, l = 20, unit = "pt"),
|
||||
legend.position = "none",
|
||||
panel.grid.major.x = element_blank(),
|
||||
panel.grid.minor.x = element_blank(), # vertikale grid lines entfernen
|
||||
# X-Achsen-Titel (z.B. "Straftatbestand")
|
||||
axis.title.x = element_text(
|
||||
face = "bold",
|
||||
family = "sans",
|
||||
# Fügen Sie hier einen Abstand nach OBEN hinzu
|
||||
margin = margin(t = 15) # t = top (oben) in Pixeln
|
||||
),
|
||||
|
||||
# Y-Achsen-Titel (z.B. "Anzahl erfasster Fälle")
|
||||
axis.title.y = element_text(
|
||||
face = "bold",
|
||||
family = "sans",
|
||||
# Fügen Sie hier einen Abstand nach RECHTS hinzu
|
||||
margin = margin(r = 15) # r = right (rechts) in Pixeln
|
||||
),
|
||||
)
|
||||
|
||||
}, res = 100)
|
||||
|
||||
output$tbl_2024 <- renderTable(
|
||||
map_data_to_table(
|
||||
|
||||
Reference in New Issue
Block a user