Skip to main content

Todeszahlen shiny app

Quellcode der Seite shiny.analysed.ch/todesfaelle/

Untitled.png

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)