Todeszahlen shiny app
library(shiny)
library(shinydashboard)
library(plotly)
library(ggplot2)
library(dplyr)
todesfaelle_1803_2020 <- vroom::vroom('todesfaelle_1803_2020.csv') %>%
mutate(geschlecht = parse_factor(geschlecht), demografisches_merkmal = parse_factor(demografisches_merkmal))
todesfaelle_woechentlich <- vroom::vroom('tod_woechentlich.csv') %>%
mutate(Alter = parse_factor(Alter))
ui <- dashboardPage(
dashboardHeader(title = 'Todesfälle'),
dashboardSidebar(
sidebarMenu(
menuItem("Todesfälle 1803-2020", tabName = "todesfaelle", icon = icon("signal")),
menuItem("Todesfälle 2010-2021", tabName = "tod_woch", icon = icon("virus"))
)
),
dashboardBody(
tabItems(
tabItem("todesfaelle",
box(plotlyOutput("plot_1803_2020"), width = 10, tags$a(href="https://blog.analysed.ch/books/analysedch-apps/page/todeszahlen-shiny-app", "Quellcode dieser App")),
box(selectInput("demo_graph", "Demografisches Merkmal:", c( "Unter 20 Jahren", "20-39 Jahre", "40-64 Jahre", "65-79 Jahre", "80 Jahre und mehr", "Alter unbekannt", "Schweizerische Staatsangehörigkeit", "Ausländische Staatsangehörigkeit", "Unbekannte Staatsangehörigkeit", "Ledig", "Verheiratet", "Verwitwet", "Geschieden", "Unverheiratet", "In eingetragener Partnerschaft", "Aufgelöste Partnerschaft", "Zivilstand unbekannt", "Todesfälle - Total")),
width = 2)),
tabItem("tod_woch",
box(plotlyOutput("plot_2020_2021"), width = 12, tags$a(href="https://blog.analysed.ch/books/analysedch-apps/page/todeszahlen-shiny-app", "Quellcode dieser App"))
)
)
)
)
server <- function(input, output){
output$plot_1803_2020 <- renderPlotly({
ggplotly(ggplot(todesfaelle_1803_2020 %>% dplyr::filter(demografisches_merkmal == input$demo_graph), mapping = aes(x = jahr, y = value, color= geschlecht)) +
geom_point(alpha=0.6, size=0.7)+geom_line(alpha=0.5)+
labs(x='Jahr', y='Anzahl Tote', color="Geschlecht", title= "Todesfälle nach Geschlecht und Demographische Merkmale 1803-2020")+
scale_colour_viridis_d(begin = 0.1, end = 0.7)+ theme_classic())
})
output$plot_2020_2021 <- renderPlotly({
ggplotly(ggplot(todesfaelle_woechentlich, mapping = aes(x = Jahr, y = Anzahl_Todesfalle, color= Alter)) +
geom_ribbon(aes(ymin = untGrenze, ymax = obeGrenze), alpha = 0.15) +
geom_point(alpha=0.6, size=0.7) + geom_line(alpha=0.6) + ylim(0, 2000) +
labs(x='Jahr', y='Anzahl Tote', color = "Alter", title = "Altersgruppen und Erwartungswerte 2010-2021")+
scale_colour_viridis_d(begin = 0.1, end = 0.7)+ theme_classic())
})
}
shinyApp(ui, server)
No Comments