Dear all,
I made an app with Rmarkdown, Shiny and used the packages sf, dplyr and ggplot. When I run it locally it works, however trying to upload it I got the following log error:
2018-12-16T21:05:05.824584+00:00 shinyapps[618088]: Warning: Error in CPL_read_ogr: Open failed.
2018-12-16T21:05:05.824586+00:00 shinyapps[618088]:
2018-12-16T21:05:05.830258+00:00 shinyapps[618088]: Stack trace (innermost first):
2018-12-16T21:05:05.830260+00:00 shinyapps[618088]: 133: <Anonymous>
2018-12-16T21:05:05.830262+00:00 shinyapps[618088]: 132: stop
2018-12-16T21:05:05.830263+00:00 shinyapps[618088]: 131: CPL_read_ogr
2018-12-16T21:05:05.830264+00:00 shinyapps[618088]: 130: st_read.character
2018-12-16T21:05:05.830265+00:00 shinyapps[618088]: 129: sf::st_read
Could it be that the app isn't working on shinyapp.io due to not being able to retrieve information from the .dpf, .prj and .shx that go with running a .shp file?
Here I post my complete code because I unfortunately do not have an idea where it is going wrong.
---
title: "**Neigbourhoods in numbers | Haarlem**"
Author: Tobias Brils
runtime: shiny
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
source_code: embed
theme: bootstrap
logo: haarlem.png
---
<style type="text/css">
body{ /* Normal */
font-size: 14px;
font-family: "Helvetica";
color: black;
}
.navbar-brand {
color:#6699CC!important;
}
code.r{ /* Code block */
font-size: 14px;
font-family: "Helvetica";
color: #6699CC!important;
}
</style>
```{r include=FALSE}
### Library and data ----
library(dplyr)
library(ggplot2)
library(tidyr)
library(scales)
library(gridExtra)
library(shiny)
library(forcats)
options(digits = 2)
#Data----
Shb1678 <- read.csv("Wijken1.csv")
Shb1678$Jaar <- as.character(Shb1678$Jaar)
```
```{r include=FALSE}
foreign::read.dbf("wijkPolygon.dbf")
Haarlem <- sf::st_read("wijkPolygon.shp")
#Creating a reactive map that shows the selected neighborhood (which is called wijk in Dutch) according to the selectizeInput() further down the script.
WIJK1 <- reactive ({
Haarlem %>% filter(name == input$Wijk1)
})
WIJK2 <- reactive ({
Haarlem %>% filter(name == input$Wijk2)
})
```
Sidebar {.sidebar}
======================================================================
```{r}
##Creating the selection boxes
name = Haarlem$name %>% as.factor()
selectizeInput("Wijk1", "Choose neigbourhood", name, selected = "Ter Kleefkwartier")
name = Haarlem$name %>% as.factor()
selectizeInput("Wijk2", "Choose neigbourhood", name, selected = "Boerhaavewijk")
```
```{r}
#Creating a reactive map that shows the selected neighbourhood (wijk) according to the selectizeInput() further down the script.
renderPlot({
p <- Haarlem %>%
ggplot() +
geom_sf(aes(fill = name), colour = "White", fill = "#99CCFF") +
xlab("") +
ylab("") +
theme_minimal() + theme(axis.title.x=element_blank(),
axis.text = element_blank())
p + geom_sf(data= WIJK1(),
aes(fill = name), colour = "#0066FF", fill = "#336699") + ##"#336699", "#6699CC" #99CC00
geom_sf_text(data= WIJK1(), aes(label = name)) +
geom_sf(data= WIJK2(),
aes(fill = name), colour = "#0066FF", fill = "#6699CC") + ##CC99CC
geom_sf_text(data= WIJK2(), aes(label = name))
})
```
Migration background {.tabset}
======================================================================
Migration background
-----------------------------------------------------------------------
### % of people with a migration or native background in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
```{r}
###Slachthuiswijk afkomst data ------
pie.background <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk1) %>%
filter(Jaar==max(Jaar)) %>%
filter(X == 2) %>% ## filter op stads en wijkniveau
group_by(WijkenEnBuurten) %>% ## grouperen op stad en wijk om percentage te berekenen
mutate(Nederlands = AantalInwoners - (WestersTotaal +
NietWestersTotaal)) %>% ##mensen met een nederlandse achtergrond berekenen
select(WijkenEnBuurten,
WestersTotaal,
NietWestersTotaal,
Marokko,
NederlandseAntillenEnAruba,
Suriname,
Turkije,
OverigNietWesters,
Nederlands) %>% ## De variabelen selecteren voor de subset van data
gather(Populatie,
Aantal,
WestersTotaal:OverigNietWesters, Nederlands, -WijkenEnBuurten,
factor_key = T) %>% ## De data subset (als een pivot tabel)
group_by(WijkenEnBuurten) %>%
mutate(Achtergrond = case_when(
Populatie == "WestersTotaal" ~ "Migrantion background",
Populatie == "NietWestersTotaal" ~ "Migrantion background",
Populatie == "Nederlands" ~ "Native background")) %>%
select(-Populatie) %>% ## populatie droppen, niet nodig
group_by(WijkenEnBuurten, Achtergrond) %>% ##grouperen voor de som
filter(Achtergrond %in% c("Migrantion background", "Native background")) %>%
summarise_all(sum) %>% ## som nederlandse en mensen met migranten achtergrond
mutate(Percentage = Aantal / sum(Aantal) *100) %>% ## percentage berekenen
ggplot(aes(x="", y= Percentage, fill= Achtergrond, label = Achtergrond)) +
geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0) +
theme_void() + scale_fill_manual(values=c("#99CCFF", "#6699CC")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_label(aes(label=sprintf("%0.2f%%", Percentage)),
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
labs(fill = "", caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
pie.background()
})
```
### % of migrant population per country of descent in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
```{r}
###Slachthuiswijk afkomst data ------
bar.background <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk1) %>%
filter(Jaar == max(Jaar)) %>%
filter(X == 2) %>% ## filter op stads en wijkniveau
mutate(Nederlands = AantalInwoners - (WestersTotaal +
NietWestersTotaal)) %>% ##mensen met een nederlandse achtergrond berekenen
select(WijkenEnBuurten,
WestersTotaal,
NietWestersTotaal,
Marokko,
NederlandseAntillenEnAruba,
Suriname,
Turkije,
OverigNietWesters,
Nederlands) %>% ## De variabelen selecteren voor de subset van data
gather(Populatie,
Aantal,
WestersTotaal:OverigNietWesters, Nederlands, -WijkenEnBuurten,
factor_key = T) %>% ## De data subset (als een pivot tabel)
mutate(Populatie = fct_recode(Populatie,
"Western" = "WestersTotaal",
"Non western" = "NietWestersTotaal",
"Moroccan" = "Marokko",
"Antillean & Aruban" = "NederlandseAntillenEnAruba",
"Surinamese" = "Suriname",
"Turkish" = "Turkije",
"Other non-western" = "OverigNietWesters",
"Dutch" = "Nederlands")) %>%
filter(Populatie %in% c("Western",
"Moroccan",
"Antillean & Aruban",
"Surinamese",
"Turkish",
"Other non-western")) %>%
mutate(Percentage = Aantal / sum(Aantal)) %>%
ggplot(aes(x= reorder(Populatie, -Percentage),
y=Percentage, colour = Populatie)) +
geom_bar(stat="identity",
colour = "White",
fill = "#99CCFF") + ###99CC00 ###99CCFF ###99CC99 ##CC99CC ###990000 ###00CC99 ###000033
coord_flip() +
theme_minimal() +
theme(legend.position = "none") +
ggtitle("") +
xlab("") +
ylab("") +
scale_y_continuous(labels= percent)
})
## afkomst taart ========
renderPlot({
bar.background()
})
```
Migratie Achtergrond
-----------------------------------------------------------------------
### % population with migration or native background in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
```{r}
###Slachthuiswijk afkomst data ------
pie.background2 <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk2) %>%
filter(Jaar==max(Jaar)) %>%
filter(X < 3) %>% ## filter op stads en wijkniveau
group_by(WijkenEnBuurten) %>% ## grouperen op stad en wijk om percentage te berekenen
mutate(Nederlands = AantalInwoners - (WestersTotaal +
NietWestersTotaal)) %>% ##mensen met een nederlandse achtergrond berekenen
select(WijkenEnBuurten,
WestersTotaal,
NietWestersTotaal,
Marokko,
NederlandseAntillenEnAruba,
Suriname,
Turkije,
OverigNietWesters,
Nederlands) %>% ## De variabelen selecteren voor de subset van data
gather(Populatie,
Aantal,
WestersTotaal:OverigNietWesters, Nederlands, -WijkenEnBuurten,
factor_key = T) %>% ## De data subset (als een pivot tabel)
group_by(WijkenEnBuurten) %>%
mutate(Achtergrond = case_when(
Populatie == "WestersTotaal" ~ "Migrantion background",
Populatie == "NietWestersTotaal" ~ "Migrantion background",
Populatie == "Nederlands" ~ "Native background")) %>%
select(-Populatie) %>% ## populatie droppen, niet nodig
group_by(WijkenEnBuurten, Achtergrond) %>% ##grouperen voor de som
filter(Achtergrond %in% c("Migrantion background", "Native background")) %>%
summarise_all(sum) %>% ## som nederlandse en mensen met migranten achtergrond
mutate(Percentage = Aantal / sum(Aantal) *100) %>% ## percentage berekenen
ggplot(aes(x="", y= Percentage, fill= Achtergrond, label = Achtergrond)) +
geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0) +
theme_void() + scale_fill_manual(values=c("#99CCFF", "#6699CC")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_label(aes(label=sprintf("%0.2f%%", Percentage)),
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
labs(fill = "", caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
pie.background2()
})
```
### % of migrant population per country of descent in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
```{r}
###Slachthuiswijk afkomst data ------
bar.background2 <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk2) %>%
filter(Jaar == max(Jaar)) %>%
filter(X < 3) %>% ## filter op stads en wijkniveau
mutate(Nederlands = AantalInwoners - (WestersTotaal +
NietWestersTotaal)) %>% ##mensen met een nederlandse achtergrond berekenen
select(WijkenEnBuurten,
WestersTotaal,
NietWestersTotaal,
Marokko,
NederlandseAntillenEnAruba,
Suriname,
Turkije,
OverigNietWesters,
Nederlands) %>% ## De variabelen selecteren voor de subset van data
gather(Populatie,
Aantal,
WestersTotaal:OverigNietWesters, Nederlands, -WijkenEnBuurten,
factor_key = T) %>% ## De data subset (als een pivot tabel)
mutate(Populatie = fct_recode(Populatie,
"Western" = "WestersTotaal",
"Non western" = "NietWestersTotaal",
"Moroccan" = "Marokko",
"Antillean & Aruban" = "NederlandseAntillenEnAruba",
"Surinamese" = "Suriname",
"Turkish" = "Turkije",
"Other non-western" = "OverigNietWesters",
"Dutch" = "Nederlands")) %>%
filter(Populatie %in% c("Western",
"Moroccan",
"Antillean & Aruban",
"Surinamese",
"Turkish",
"Other non-western")) %>%
mutate(Percentage = Aantal / sum(Aantal)) %>%
ggplot(aes(x= reorder(Populatie, -Percentage),
y=Percentage, colour = Populatie)) +
geom_bar(stat="identity",
colour = "White",
fill = "#99CCFF") + ###99CC00 ###99CCFF ###99CC99 ##CC99CC ###990000 ###00CC99 ###000033
coord_flip() +
theme_minimal() +
theme(legend.position = "none") +
ggtitle("") +
xlab("") +
ylab("") +
scale_y_continuous(labels= percent) + theme(axis.title.x=element_blank())
})
## afkomst taart ========
renderPlot({
bar.background2()
})
```
Age cohorts {.tabset}
======================================================================
Age cohorts
-----------------------------------------------------------------------
### % population per age cohorts in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
``` {r}
Age.bar <- reactive({
Shb1678 %>%
filter(Jaar==2018) %>%
filter(X == 2) %>% ## filter op stads en wijkniveau
filter(Wijken %in% input$Wijk1) %>%
select(WijkenEnBuurten,
k_0Tot15Jaar,
k_15Tot25Jaar,
k_25Tot45Jaar,
k_45Tot65Jaar,
k_65JaarOfOuder) %>%
gather(Naam,
Populatie,
k_0Tot15Jaar:k_65JaarOfOuder, -WijkenEnBuurten,
factor_key = T) %>%
group_by(WijkenEnBuurten) %>%
mutate(Percentage = Populatie / sum(Populatie)) %>%
mutate(Naam = fct_recode(Naam,
"0 to 15 years old" = "k_0Tot15Jaar",
"15 to 25 years old" = "k_15Tot25Jaar",
"25 to 45 years old" = "k_25Tot45Jaar",
"45 to 65 years old" = "k_45Tot65Jaar",
"65 and older" = "k_65JaarOfOuder")) %>%
rename("Age categories" = Naam) %>%
ggplot(aes(x= reorder(`Age categories`, -Percentage),
y=Percentage, colour = `Age categories`)) +
geom_bar(stat="identity",
colour = "White",
fill = "#99CCFF") +
coord_flip() +
theme_minimal() +
geom_text(aes(label=Populatie),
colour = "White",
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
scale_y_continuous(labels= percent) +
labs( caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
Age.bar()
})
```
### % cohort 0 to 15 years old over time in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
``` {r}
## elke leeftijdsgroep ====
Age.line <- reactive({
Shb1678 %>%
filter(Wijken %in% input$Wijk1) %>%
filter(X > 2) %>%
select(Jaar,
WijkenEnBuurten,
k_0Tot15Jaar,
k_15Tot25Jaar,
k_25Tot45Jaar,
k_45Tot65Jaar,
k_65JaarOfOuder) %>%
gather(Populatie,
Aantal,
k_0Tot15Jaar:k_65JaarOfOuder, -WijkenEnBuurten, -Jaar,
factor_key = T) %>%
group_by(WijkenEnBuurten, Jaar) %>%
mutate(Percentage = Aantal / sum(Aantal)) %>%
mutate(Populatie = fct_recode(Populatie,
"Categorie 0 tot 15 jarige" = "k_0Tot15Jaar",
"Categorie 15 tot 25 jarige" = "k_15Tot25Jaar",
"Categorie 25 tot 45 jarige" = "k_25Tot45Jaar",
"Categorie 45 tot 65 jarige" = "k_45Tot65Jaar",
"Categorie 65 en ouder" = "k_65JaarOfOuder")) %>%
filter(Populatie %in% c("Categorie 0 tot 15 jarige")) %>%
rename("Neighbourhoods" = WijkenEnBuurten) %>%
ggplot(aes(x = Jaar,
y = Percentage,
colour = Neighbourhoods,
group = Neighbourhoods)) +
geom_line() + geom_point() + scale_colour_brewer(palette = "Set1") +
scale_y_continuous(labels= percent) +
facet_grid(vars(Populatie)) +
ggtitle("") +
xlab("Year") +
ylab("") +
labs(colour = "Neighbourhood's\nsub-areas\n")
})
renderPlot({
Age.line()
})
```
leeftijdscohorten
-----------------------------------------------------------------------
### % population per age cohorts in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
``` {r}
Age.bar1 <- reactive({
Shb1678 %>%
filter(Jaar==2018) %>%
filter(X == 2) %>% ## filter op stads en wijkniveau
filter(Wijken %in% input$Wijk2) %>%
select(WijkenEnBuurten,
k_0Tot15Jaar,
k_15Tot25Jaar,
k_25Tot45Jaar,
k_45Tot65Jaar,
k_65JaarOfOuder) %>%
gather(Naam,
Populatie,
k_0Tot15Jaar:k_65JaarOfOuder, -WijkenEnBuurten,
factor_key = T) %>%
group_by(WijkenEnBuurten) %>%
mutate(Percentage = Populatie / sum(Populatie)) %>%
mutate(Naam = fct_recode(Naam,
"0 to 15 years old" = "k_0Tot15Jaar",
"15 to 25 years old" = "k_15Tot25Jaar",
"25 to 45 years old" = "k_25Tot45Jaar",
"45 to 65 years old" = "k_45Tot65Jaar",
"65 and older" = "k_65JaarOfOuder")) %>%
rename("Age categories" = Naam) %>%
ggplot(aes(x= reorder(`Age categories`, -Percentage),
y=Percentage, colour = `Age categories`)) +
geom_bar(stat="identity",
colour = "White",
fill = "#99CCFF") +
coord_flip() +
theme_minimal() +
geom_text(aes(label=Populatie),
colour = "White",
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
scale_y_continuous(labels= percent) +
labs( caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
Age.bar1()
})
```
### % cohort 0 to 15 years old over time in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
``` {r}
## elke leeftijdsgroep ====
Age.line1 <- reactive({
Shb1678 %>%
filter(Wijken %in% input$Wijk2) %>%
filter(X > 2) %>%
select(Jaar,
WijkenEnBuurten,
k_0Tot15Jaar,
k_15Tot25Jaar,
k_25Tot45Jaar,
k_45Tot65Jaar,
k_65JaarOfOuder) %>%
gather(Populatie,
Aantal,
k_0Tot15Jaar:k_65JaarOfOuder, -WijkenEnBuurten, -Jaar,
factor_key = T) %>%
group_by(WijkenEnBuurten, Jaar) %>%
mutate(Percentage = Aantal / sum(Aantal)) %>%
mutate(Populatie = fct_recode(Populatie,
"Categorie 0 tot 15 jarige" = "k_0Tot15Jaar",
"Categorie 15 tot 25 jarige" = "k_15Tot25Jaar",
"Categorie 25 tot 45 jarige" = "k_25Tot45Jaar",
"Categorie 45 tot 65 jarige" = "k_45Tot65Jaar",
"Categorie 65 en ouder" = "k_65JaarOfOuder")) %>%
filter(Populatie %in% c("Categorie 0 tot 15 jarige")) %>%
rename("Neighbourhoods" = WijkenEnBuurten) %>%
ggplot(aes(x = Jaar,
y = Percentage,
colour = Neighbourhoods,
group = Neighbourhoods)) +
geom_line() + geom_point() + scale_colour_brewer(palette = "Set1") +
scale_y_continuous(labels= scales::percent) +
facet_grid(vars(Populatie)) +
ggtitle("") +
xlab("Year") +
ylab("") +
labs(colour = "Neighbourhood's\nsub-areas\n")
})
renderPlot({
Age.line1()
})
```
Household/dwelling types {.tabset}
======================================================================
Household types
-----------------------------------------------------------------------
### % household types in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
``` {r}
Household <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk1) %>%
filter(Jaar==max(Jaar)) %>%
filter(X == 2) %>%
select(WijkenEnBuurten,
Eenpersoonshuishoudens,
HuishoudensZonderKinderen,
HuishoudensMetKinderen) %>% ## De variabelen selecteren voor de subset van data
gather(Huishoudens,
Aantal,
Eenpersoonshuishoudens:HuishoudensMetKinderen, -WijkenEnBuurten,
factor_key = T) %>%
mutate(Huishoudens = fct_recode(Huishoudens,
"single-person household" = "Eenpersoonshuishoudens",
"Households without children" = "HuishoudensZonderKinderen",
"Households with children" = "HuishoudensMetKinderen")) %>%
group_by(WijkenEnBuurten) %>% mutate(Percentage = Aantal / sum(Aantal) *100) %>%
select(-Aantal) %>%
ggplot(aes(x="", y= Percentage, fill= Huishoudens, label = Huishoudens)) +
geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0) +
theme_void() + scale_fill_manual(values=c("#99CCFF", "#336699", "#6699CC")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_label(aes(label=sprintf("%0.2f%%", Percentage)),
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
labs(fill = "Type of\nhousehold\n", caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
Household()
})
```
### % dwelling types in <span style="color:black;font-weight:bold">`r renderText(input$Wijk1)`</span> {#foo}
``` {r}
Housing.type <- reactive({
Shb1678 %>%
filter(Wijken %in% input$Wijk1) %>%
filter(X == 2) %>%
select(WijkenEnBuurten,
PercentageEengezinswoning,
PercentageMeergezinswoning,
Jaar) %>%
rename("Single-family dwellings" = PercentageEengezinswoning,
"Multi-storey dwellings" = PercentageMeergezinswoning) %>%
gather(value = "Percentage",
key = "Housing type",
`Single-family dwellings`, `Multi-storey dwellings`) %>%
ggplot(aes(x=Jaar,
y= (Percentage/100),
color=`Housing type`,
group = `Housing type`)) +
stat_summary(fun.y = "mean", geom = "line") +
geom_point() + scale_colour_brewer(palette = "Set1") +
scale_y_continuous(labels= percent) +
facet_grid(vars(WijkenEnBuurten)) +
xlab("") +
ylab("") +
theme(plot.caption = element_text(hjust = 0.5)) +
labs(colour = "Type of dwelling\n")
})
renderPlot({
Housing.type()
})
```
Huishoudenstype
-----------------------------------------------------------------------
### % household types in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
``` {r}
Household1 <- reactive({
Shb1678 %>% filter(Wijken %in% input$Wijk2) %>%
filter(Jaar==max(Jaar)) %>%
filter(X == 2) %>%
select(WijkenEnBuurten,
Eenpersoonshuishoudens,
HuishoudensZonderKinderen,
HuishoudensMetKinderen) %>% ## De variabelen selecteren voor de subset van data
gather(Huishoudens,
Aantal,
Eenpersoonshuishoudens:HuishoudensMetKinderen, -WijkenEnBuurten,
factor_key = T) %>%
mutate(Huishoudens = fct_recode(Huishoudens,
"Single-person households" = "Eenpersoonshuishoudens",
"Households without children" = "HuishoudensZonderKinderen",
"Households with children" = "HuishoudensMetKinderen")) %>%
group_by(WijkenEnBuurten) %>% mutate(Percentage = Aantal / sum(Aantal) *100) %>%
select(-Aantal) %>%
ggplot(aes(x="", y= Percentage, fill= Huishoudens, label = Huishoudens)) +
geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0) +
theme_void() + scale_fill_manual(values=c("#99CCFF","#336699", "#6699CC")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_label(aes(label=sprintf("%0.2f%%", Percentage)),
position = position_stack(vjust = 0.5)) +
xlab("") +
ylab("") +
labs(fill = "Type of\nhousehold\n", caption = "Year of measurement: 2018")
})
## afkomst taart ========
renderPlot({
Household1()
})
```
### % dwelling types in <span style="color:black;font-weight:bold">`r renderText(input$Wijk2)`</span> {#foo}
``` {r}
## elke leeftijdsgroep ====
Housing.type1 <- reactive({
Shb1678 %>%
filter(Wijken %in% input$Wijk2) %>%
filter(X == 2) %>%
select(WijkenEnBuurten,
PercentageEengezinswoning,
PercentageMeergezinswoning,
Jaar) %>%
rename("Single-family dwellings" = PercentageEengezinswoning,
"Multi-storey dwellings" = PercentageMeergezinswoning) %>%
gather(value = "Percentage",
key = "Housing type",
`Single-family dwellings`, `Multi-storey dwellings`) %>%
ggplot(aes(x=Jaar,
y= (Percentage/100),
color=`Housing type`,
group = `Housing type`)) +
stat_summary(fun.y = "mean", geom = "line") +
geom_point() + scale_colour_brewer(palette = "Set1") +
scale_y_continuous(labels= percent) +
facet_grid(vars(WijkenEnBuurten)) +
xlab("") +
ylab("") +
theme(plot.caption = element_text(hjust = 0.5)) +
labs(colour = "Type of dwelling\n")
})
renderPlot({
Housing.type1()
})