Packages laden und Theme definieren


mypackages <- c("foreign", "tidyverse", "car", "tidytext", "extrafont")

lapply(mypackages, library, character.only = TRUE)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.7
## v tidyr   1.1.4     v stringr 1.4.0
## v readr   2.1.0     v forcats 0.5.1
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'tidyr' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## Warning: package 'car' was built under R version 4.1.2
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
## Warning: package 'tidytext' was built under R version 4.1.2
## Registering fonts with R
## [[1]]
## [1] "foreign"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"     
## 
## [[2]]
##  [1] "forcats"   "stringr"   "dplyr"     "purrr"     "readr"     "tidyr"    
##  [7] "tibble"    "ggplot2"   "tidyverse" "foreign"   "stats"     "graphics" 
## [13] "grDevices" "utils"     "datasets"  "methods"   "base"     
## 
## [[3]]
##  [1] "car"       "carData"   "forcats"   "stringr"   "dplyr"     "purrr"    
##  [7] "readr"     "tidyr"     "tibble"    "ggplot2"   "tidyverse" "foreign"  
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "base"     
## 
## [[4]]
##  [1] "tidytext"  "car"       "carData"   "forcats"   "stringr"   "dplyr"    
##  [7] "purrr"     "readr"     "tidyr"     "tibble"    "ggplot2"   "tidyverse"
## [13] "foreign"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [19] "methods"   "base"     
## 
## [[5]]
##  [1] "extrafont" "tidytext"  "car"       "carData"   "forcats"   "stringr"  
##  [7] "dplyr"     "purrr"     "readr"     "tidyr"     "tibble"    "ggplot2"  
## [13] "tidyverse" "foreign"   "stats"     "graphics"  "grDevices" "utils"    
## [19] "datasets"  "methods"   "base"

theme_jr <- function () { # custom theme erstellen
    theme_bw(base_size=12, base_family = "Calibri") %+replace% 
    theme(plot.title = element_text(size = 16,
                                    hjust = 0.5,
                                    vjust = 2.5,
                                    face = "bold"),
          plot.subtitle = element_text(hjust = 0.5,
                                       vjust = 2),
          axis.text.x = element_text(angle = 45,
                                     hjust = 1),
          axis.title = element_text(face = "italic"),
          panel.background = element_rect(fill=rgb(240, 240, 240, maxColorValue = 250),
                                          colour=NA),
          panel.grid  = element_line(rgb(250, 250, 250, maxColorValue = 250))
        )
}

Daten einlesen und organisieren

ms <- read.csv("data/zh_abschlüsse_mittelschulen.csv", 2)

colnames(ms)[1] <- "schule_sp" # Variablenname Kantonsschule x Schwerpunkt korrigieren

ms$schule_sp <- as.factor(ms$schule_sp) # schule_sp als factor speichern

ms_weiblich <- select(ms, schule_sp, weiblich_2011, weiblich_2012, weiblich_2013, weiblich_2014, weiblich_2015, weiblich_2016, weiblich_2017, weiblich_2018, weiblich_2019, weiblich_2020) # Datensatz erstellen nur mit w-Variablen

ms_weiblich[is.na(ms_weiblich)] = 0 # NAs mit 0 ersetzen
ms_weiblich <- pivot_longer(ms_weiblich, weiblich_2011:weiblich_2020, names_to = "jahr", values_to = "weiblich") # umwandeln in long format 
ms_weiblich$jahr <- str_replace(ms_weiblich$jahr, "weiblich_", "") # Variable jahr säubern

# nun nochmals das Gleiche für die Männer

ms_maennlich <- select(ms, schule_sp, maennlich_2011, maennlich_2012, maennlich_2013, maennlich_2014, maennlich_2015, maennlich_2016, maennlich_2017, maennlich_2018, maennlich_2019, maennlich_2020)

ms_maennlich[is.na(ms_maennlich)] = 0
ms_maennlich <- pivot_longer(ms_maennlich, maennlich_2011:maennlich_2020, names_to = "jahr", values_to = "maennlich")
ms_maennlich$jahr <- str_replace(ms_maennlich$jahr, "maennlich_", "")

# Datensätze zusammenfügen

ms<- cbind(ms_weiblich, ms_maennlich)
ms <- ms[, -c(4,5)] # doppelte Variablen löschen
ms$alle <- ms$weiblich + ms$maennlich # Variable total berechnen

# NAs vs. echte Nullwerte manuell bereinigen

ms[ms == 0] <- NA

ms_change <- subset(ms, schule_sp %in% c("imlee_bg",
                                                  "imlee_mu",
                                                    "imlee_pam",
                                                      "limmattal_as",
                                                        "limmattal_bg",
                                                          "limmattal_mu",
                                                           "raemimng_mu",
                                                            "raemirg_ib",
                                                              "raemirg_as",
                                                                "rychenberg_fmat_ki",
                                                                  "rychenberg_fmat_mt",
                                                                    "rychenberg_fmat_ki",
                                                                      "rychenberg_fms_mt",
                                                                        "stadelhofen_as",
                                                                          "uster_bg",
                                                                           "uster_mu",
                                                                             "uster_pam",
                                                                              "wiedikon_bg",
                                                                                "wetzikon_bg",
                                                                                  "buelach_as",
                                                                                    "buelach_bc",
                                                                                      "buelach_bg",
                                                                                        "buelach_mu",
                                                                                          "buelach_pam")) # betroffene Zeilen auswählen

ms_change$weiblich[is.na(ms_change$weiblich)] = 0 # NAs mit 0 ersetzen
ms_change$maennlich[is.na(ms_change$maennlich)] = 0

ms_keep <- ms[ !(ms$schule_sp %in% ms_change$schule_sp), ] # unbearbeitete Reihen isolieren

ms <- rbind(ms_change, ms_keep) # Datensätze wieder zusammenfügen
ms <-  ms[order(ms$schule_sp, ms$jahr),] # Datensatz sortieren nach Name der Schule, Jahr
rownames(ms) = seq(length = nrow(ms)) # Reihennamen neu definieren

# Spezialfälle bzgl. NAs und 0 bereinigen

r_fmat_p <- which(ms$schule_sp == "rychenberg_fmat_p")
r_fmat_p
##  [1] 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
ms[1025, 4] <- 0

# FMS, BMS, HMS usw. ausschliessen --> nur noch Gymnasien

ms_gym <- subset(ms, !grepl("fmat|fms|bm1|bms|hms", schule_sp))

Abschlüsse insgesamt Männer vs. Frauen über die Zeit hinweg

ms_alle_schulen_gym <- ms_gym
ms_alle_schulen_gym <- filter(ms_alle_schulen_gym, !str_detect(schule_sp, ".*alle.*")) # alle Zeilen mit "alle_schulen" oder "..._alle" löschen

ms_alle_schulen_gym$schule <- str_extract(ms_alle_schulen_gym$schule_sp, ".*_") # Variable für die Schulen getrennt von den Schwerpunktfächern erstellen
ms_alle_schulen_gym$schule <- str_extract(ms_alle_schulen_gym$schule, "[a-z]+") # "_" vom Ende des Schule-strings löschen
ms_alle_schulen_gym <- select(ms_alle_schulen_gym, jahr, schule, weiblich, maennlich, alle) # unnötige Variablen löschen
ms_alle_schulen_gym <- mutate(ms_alle_schulen_gym, mean_weiblich_perc = weiblich/alle)
ms_alle_schulen_gym$jahr <- as.factor(ms_alle_schulen_gym$jahr)
ms_alle_schulen_gym <- pivot_longer(ms_alle_schulen_gym, cols = c(weiblich, maennlich), names_to =  "geschlecht") # Long-Format wählen für die Grafik

ms_alle_schulen_gym <- group_by(ms_alle_schulen_gym, jahr, geschlecht) # Datensatz nach Jahr und Geschlecht gruppieren
ms_alle_schulen_gym <- summarise(ms_alle_schulen_gym, mean_abs = mean(value, na.rm = TRUE),
                                 mean_weiblich_perc = mean(mean_weiblich_perc, na.rm = TRUE)) # Durchschnittliche Anzahl Abschlüsse nach Geschlecht pro Jahr berechnen
## `summarise()` has grouped output by 'jahr'. You can override using the `.groups` argument.
ms_alle_schulen_gym$mean_abs <- round(ms_alle_schulen_gym$mean_abs, digits = 0) # Durchschnittliche Anzahl Abschlüsse nach Geschlecht pro Jahr runden
ms_alle_schulen_gym$mean_weiblich_perc <- 100*round(ms_alle_schulen_gym$mean_weiblich_perc, digits = 2) # Geschlechteranteile runden und in Prozent anzeigen
ms_alle_schulen_gym$mean_weiblich_perc <- ifelse(ms_alle_schulen_gym$geschlecht == "weiblich", ms_alle_schulen_gym$mean_weiblich_perc, "") # Werte für Geschlecht = maennlich rauslöschen

ms_alle_schulen_gym$perc <- ifelse(ms_alle_schulen_gym$geschlecht == "weiblich", "%", "")
ms_alle_schulen_gym$mean_weiblich_perc <- str_c(ms_alle_schulen_gym$mean_weiblich_perc, "", ms_alle_schulen_gym$perc) # Prozentzeichen für Frauenanteile hinzufügen

zeit_gym <- ggplot(data = ms_alle_schulen_gym) +
   aes(x = jahr, y = mean_abs,
      fill = geschlecht,
      label = mean_weiblich_perc) +
  geom_bar(position = "fill",
      stat = "identity") +
  scale_y_continuous(labels = scales::percent_format(suffix = "%")) +
  scale_fill_manual(name = "", labels = c("Männer", "Frauen"),
                    values = c("#00c4aa", "#8700f9")) +
  geom_text(aes(label = mean_weiblich_perc),
            position = "fill",
            size = 3,
            vjust = 1.3,
            colour = "white",
            family = "Corbel") +
  geom_hline(yintercept = 0.5,
            colour = "white",
            linetype = "dashed") +
  labs(title = "Der Frauenanteil der Maturitätsabschlüsse im Kanton Zürich bleibt stabil \n",
      subtitle = "Frauenanteil aller Gymnasialabschlüsse im Kanton Zürich pro Jahr (2011-2020) \n",
      x = "",
      y = "Frauenanteil in Prozent",
      caption = "Quelle: Bildungsstatistik Kanton Zürich") +
  theme_jr() # plot definieren
  


zeit_gym #plotten

# ggsave("graphics/mean_frauen_nach_jahr_neu.png", plot = zeit_gym, width = 9, height = 6) # Plot speichern

Abschlüsse insgesamt Männer vs. Frauen nach Profil

ms_sp_gym <- ms_gym
ms_sp_gym <- ms_sp_gym[ !(ms_sp_gym$schule_sp == "alle_schulen"), ] # Zeilen "alle Schulen" löschen

ms_sp_gym$weiblich_perc <- (ms_sp_gym$weiblich / ms_sp_gym$alle) * 100 # Frauenanteil pro Jahr berechnen
ms_sp_gym <- group_by(ms_sp_gym, schule_sp) # nach schule_sp gruppieren
ms_sp_gym <- summarise(ms_sp_gym, mean_weiblich_perc = mean(weiblich_perc, na.rm = TRUE)) # Durchschnittlicher Frauenanteil 2011-2020 pro Schule berechnen

ms_sp_gym$sp <- str_extract(ms_sp_gym$schule_sp, "\\_.*") # Variable für die Schwerpunktfächer getrennt von der Schule erstellen
ms_sp_gym$sp <- str_extract(ms_sp_gym$sp, "[a-z].*") # "_" vom Anfang des SP-strings löschen

ms_sp_gym <- group_by(ms_sp_gym, sp) # new nach sp gruppieren
ms_sp_gym <- summarise(ms_sp_gym, mean_weiblich_perc = mean(mean_weiblich_perc, na.rm = TRUE)) # Durchschnittlicher Frauenanteil 2011-2020 pro Schwerpunktfach über alle Schulen hinweg berechnen

ms_sp_gym$sp <- factor(ms_sp_gym$sp, levels = ms_sp_gym$sp[order(ms_sp_gym$mean_weiblich_perc)]) # Ordnung für Plot anpassen

# Labels für plot definieren

levels(ms_sp_gym$sp) # Labels von sp
## [1] "pam"  "wr"   "bc"   "as"   "ib"   "alle" "ns"   "mu"   "bg"
sp_labs <- c("Physik und Anwendungen \n der Mathematik", "Wirtschaft und Recht", "Biologie und Chemie", "Alte Sprachen", "International Baccalaureate", "Durchschnitt", "Neue Sprachen", "Musik", "Bildnerisches Gestalten")
levels(ms_sp_gym$sp) <- sp_labs

ms_sp_gym$mean_weiblich_perc <- round(ms_sp_gym$mean_weiblich_perc, digits = 0) # Frauenanteil runden

schwerpunkt_gym <- ggplot(data = ms_sp_gym) +
  aes(x = sp, y = mean_weiblich_perc,
      fill = sp) +
  geom_col(size = 2) + 
 scale_y_continuous(breaks = c(0, 25, 50, 75, 100),
                    labels = c("0%", "25%", "50%", "75%", "100%"),
                    limits = c(0, 100)) +
  scale_fill_manual(values = c("#8700f9","#8700f9","#8700f9","#8700f9","#8700f9","#cb6ae5","#8700f9","#8700f9","#8700f9")) +
  geom_text(aes(label = paste0(mean_weiblich_perc, "%")),
            size = 3.5,
            vjust = -1.2,
            family = "Corbel") +
  geom_hline(yintercept = 50,
             colour = "white",
             linetype = "dashed") +
  labs(title = "Im Schwerpunktfach Bildnerisches Gestalten ist der Frauenanteil am höchsten \n",
    subtitle = "Durchschnittlicher Frauenanteil aller Gymnasialabschlüsse im Kanton Zürich nach Schwerpunktfach (2011-2020) \n",
       x = "Schwerpunktfach",
       y = "Frauenanteil in Prozent",
       caption = "Quelle: Bildungsstatistik Kanton Zürich") +
  theme_jr() +
  theme(legend.position = "none",
        axis.text.x = element_text(vjust = 1)) # plot definieren

schwerpunkt_gym #plotten

# ggsave("graphics/mean_frauen_nach_schwerpunkt_neu.png", plot = schwerpunkt_gym, width = 9, height= 6)

Abschlüsse insgesamt Männer vs. Frauen nach Schule und Profil

ms_schule_sp_gym <- ms_gym
ms_schule_sp_gym <- filter(ms_schule_sp_gym, !str_detect(schule_sp, ".*alle.*")) # alle Zeilen mit "alle_schulen" oder "..._alle" löschen

ms_schule_sp_gym$weiblich_perc <- (ms_schule_sp_gym$weiblich / ms_schule_sp_gym$alle) * 100 # Frauenanteil pro Jahr berechnen

ms_schule_sp_gym$sp <- str_extract(ms_schule_sp_gym$schule_sp, "\\_.*") # Variable für die Schwerpunktfächer getrennt von der Schule erstellen
ms_schule_sp_gym$sp <- str_extract(ms_schule_sp_gym$sp, "[a-z].*") # "_" vom Anfang des SP-strings löschen
ms_schule_sp_gym$schule <- str_extract(ms_schule_sp_gym$schule_sp, "[a-z]+_") # Variable für die Schulen getrennt von den Schwerpunktfächern erstellen 
ms_schule_sp_gym$schule <- str_extract(ms_schule_sp_gym$schule, "[a-z]+") # "_" vom Schluss des Schule-strings löschen

ms_schule_sp_gym <- group_by(ms_schule_sp_gym, sp, schule) # nach sp und schule gruppieren
ms_schule_sp_gym <- summarise(ms_schule_sp_gym, mean_weiblich_perc = mean(weiblich_perc, na.rm = TRUE)) # Durchschnittlicher Frauenanteil pro Schwerpunktfach pro Schule (2011-2020) berechnen
## `summarise()` has grouped output by 'sp'. You can override using the `.groups` argument.
table(ms_schule_sp_gym$schule) # Labels von schule
## 
##       birch     buelach    buelrain        enge freudenberg       hopro 
##           2           7           1           3           2           2 
##   hottingen       imlee         kme   kuesnacht       liceo   limmattal 
##           1           6           6           3           1           7 
##        nord     raemilg    raemimng     raemirg  rychenberg stadelhofen 
##           7           3           4           3           2           5 
##       uster    wetzikon    wiedikon 
##           6           7           4
facet_schule_labs <- c("KS Zürich Birch", "KS Zürcher Unterland", "KS Büelrain Winterthur", "KS Enge", "KS Freudenberg", "KS Hohe Promenade", "KS Hottingen", "KS Im Lee Winterthur", "KME", "KS Küsnacht", "Liceo Artistico", "KS Limmattal", "KS Zürich Nord", "LG Rämibühl", "MNG Rämibühl", "RG Rämibühl", "KS Rychenberg Winterthur", "KS Stadelhofen", "KS Uster", "KS Zürcher Oberland", "KS Wiedikon", "Durchschnitt") # Labels von schule

ms_schule_sp_gym$mean_weiblich_perc <- round(ms_schule_sp_gym$mean_weiblich_perc, digits = 0) # Frauenanteil runden

summary(ms_schule_sp_gym) # sp und schule sind noch keine factors
##       sp               schule          mean_weiblich_perc
##  Length:82          Length:82          Min.   :14.00     
##  Class :character   Class :character   1st Qu.:46.25     
##  Mode  :character   Mode  :character   Median :61.00     
##                                        Mean   :58.99     
##                                        3rd Qu.:73.00     
##                                        Max.   :94.00
ms_schule_sp_gym$sp <-as.factor(ms_schule_sp_gym$sp) # Schwerpunkt als factor speichern
ms_schule_sp_gym$schule <-as.factor(ms_schule_sp_gym$schule) # Schule als factor speichern
levels(ms_schule_sp_gym$schule) <- facet_schule_labs # Labels von Schule anpassen


schnitte <-  data.frame(c("as","bc","bg","ib","mu","ns","pam","wr"),
                        c("Durchschnitt", "Durchschnitt", "Durchschnitt", "Durchschnitt", "Durchschnitt", "Durchschnitt", "Durchschnitt", "Durchschnitt"),
                        c(58, 45, 84, 59, 71, 69, 23, 41))
names(schnitte) <- c("sp", "schule", "mean_weiblich_perc") # Zusätzliche Reihen für Durchschnittswerte pro Schwerpunktfach kreieren

ms_schule_sp_gym <- rbind(ms_schule_sp_gym, schnitte) # Beide Datensätze zusammenfügen

ms_schule_sp_gym <- ms_schule_sp_gym %>% 
  mutate(farbe = ifelse(mean_weiblich_perc > 49, "#60dcc3", "#8700f9")) # Variable für Einfärbungen im Plot ergänzen (umgekehrt wegen coord_flip-argument in ggplot)

ms_schule_sp_gym <- arrange(ms_schule_sp_gym, sp, mean_weiblich_perc)

ms_schule_sp_gym_1 <- filter(ms_schule_sp_gym, sp == "as" | sp == "bg" | sp == "mu" | sp == "ns") # zwei separate Datensätze für zwei Grafiken erstellen
ms_schule_sp_gym_1$sp<- as.factor(ms_schule_sp_gym_1$sp) # Schwerpunkt als factor speichern
ms_schule_sp_gym_1$sp <- droplevels(ms_schule_sp_gym_1$sp) # ungenutzte Levels löschen
ms_schule_sp_gym_1 <- ungroup(ms_schule_sp_gym_1) # Gruppierung nach Schwerpunkt aufheben
ms_schule_sp_gym_1 <- mutate(ms_schule_sp_gym_1, order = row_number()) # neue Variable kreieren für Ordnung im Plot

ms_schule_sp_gym_1 <- group_by(ms_schule_sp_gym_1, sp) # Gruppierung nach Schwerpunkt wiederherstellen

ms_schule_sp_gym_2 <- filter(ms_schule_sp_gym, sp == "bc" | sp == "ib" | sp == "pam" | sp == "wr")
ms_schule_sp_gym_2$sp<- as.factor(ms_schule_sp_gym_2$sp) # Schwerpunkt als factor speichern
ms_schule_sp_gym_2$sp <- droplevels(ms_schule_sp_gym_2$sp)
ms_schule_sp_gym_2 <- ungroup(ms_schule_sp_gym_2)
ms_schule_sp_gym_2 <- mutate(ms_schule_sp_gym_2, order = row_number()) 

## Labels für Plot definieren

# Labels von den Schwerpunkten

table(ms_schule_sp_gym_1$sp) 
## 
## as bg mu ns 
## 16 11 13 19
facet_sp_labs_1 <- list("as" = "Alte Sprachen", "bg" = "Bildnerisches Gestalten", "mu" = "Musik", "ns" = "Neue Sprachen")
facet_sp_labs_2 <- list("bc" = "Biologie und Chemie", "ib" = "International Baccalaureate", "pam" = "Physik und Anwendungen \n der Mathematik", "wr" = "Wirtschaft und Recht")
facet_sp_labeller_1 <- function(variable,value){
  return(facet_sp_labs_1[value])
}
facet_sp_labeller_2 <- function(variable,value){
  return(facet_sp_labs_2[value])
}

# Datensätze für Datenbeschriftungen

ms_schule_sp_gym_lab_1 <- group_by(ms_schule_sp_gym_1, sp)
ms_schule_sp_gym_lab_1 <- filter(ms_schule_sp_gym_lab_1, mean_weiblich_perc == max(mean_weiblich_perc) | mean_weiblich_perc == min(mean_weiblich_perc) | schule == "Durchschnitt") # neuer sub-Datensatz für selektive Beschriftungen im Plot

ms_schule_sp_gym_lab_2 <- group_by(ms_schule_sp_gym_2, sp)
ms_schule_sp_gym_lab_2 <- filter(ms_schule_sp_gym_lab_2, mean_weiblich_perc == max(mean_weiblich_perc) | mean_weiblich_perc == min(mean_weiblich_perc) | schule == "Durchschnitt") # neuer sub-Datensatz für selektive Beschriftungen im Plot
                              
## Grafiken

# Erste Grafik

schule_schwerpunkt_gym_1 <- ggplot(data = ms_schule_sp_gym_1) +
  geom_segment(aes(x=order,
                   xend=order,
                   y=50,
                   yend=mean_weiblich_perc,
                   color = farbe)) +
  geom_point(aes(x=order,
                 y=mean_weiblich_perc),
                 size = 2) +
  geom_text(data=ms_schule_sp_gym_lab_1,
            aes(x=order,
                y=mean_weiblich_perc,
                label=paste0(mean_weiblich_perc, "%"),
                size = 0.1,
                family = "Calibri",
                hjust = ifelse(mean_weiblich_perc > 50, -0.3, 1.3))) +
  facet_wrap(~sp,
             labeller = facet_sp_labeller_1,
             ncol = 2,
             scales = "free") +
  geom_hline(yintercept = 50,
             colour = "dark grey",
             linetype ="dashed") +
  scale_y_continuous(breaks = c(0, 25, 50, 75, 100),
                    labels = c("0%", "25%", "50%", "75%", "100%"),
                    limits = c(0, 100)) +
  labs(title = "An den neusprachlichen Gymnasien unterscheiden sich die Schülerinnenanteile um bis zu 39 Prozentpunkte \n",
       subtitle = "Durchschnittlicher Frauenanteil aller Gymnasialabschlüsse im Kanton Zürich nach Schule und Schwerpunktfach (2011-2020) \n",
       x = "",
       y = " \n Frauenanteil in Prozent",
       caption = "Quelle: Bildungsstatistik Kanton Zürich") +
  scale_x_continuous(breaks = ms_schule_sp_gym_1$order,
                     labels = c(ms_schule_sp_gym_1$schule))+
  coord_flip() +
  theme_jr() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 0,
                                   hjust = 0.5),
        axis.text.y = element_text(size = 12),
        axis.title.x = element_text(vjust = -1),
        plot.title = element_text(size = 18, 
                                  vjust = 3),
        plot.subtitle = element_text(size = 14),
        plot.caption = element_text(size = 12),
        strip.background = element_rect(fill="#8700f9"),
        strip.text = element_text(size = 12,
                                  colour = 'white'))
## Warning: The labeller API has been updated. Labellers taking `variable` and
## `value` arguments are now deprecated. See labellers documentation.
schule_schwerpunkt_gym_1 # plotten

# ggsave("graphics/mean_frauen_nach_schwerpunkt_und_schule_1_neu.png", plot = schule_schwerpunkt_gym_1, height = 12, width = 14)

# Zweite Grafik

schule_schwerpunkt_gym_2 <- ggplot(data = ms_schule_sp_gym_2) +
  geom_segment(aes(x=order,
                   xend=order,
                   y=50,
                   yend=mean_weiblich_perc,
                   color = farbe)) +
  geom_point(aes(x=order,
                 y=mean_weiblich_perc),
                 size = 2) +
  geom_text(data=ms_schule_sp_gym_lab_2,
            aes(x=order,
                y=mean_weiblich_perc,
                label=paste0(mean_weiblich_perc, "%"),
                size = 0.1,
                family = "Calibri",
                hjust = ifelse(mean_weiblich_perc > 50, -0.3, 1.3))) +
  facet_wrap(~sp,
             labeller = facet_sp_labeller_2,
             ncol = 2,
             scales = "free") +
  geom_hline(yintercept = 50,
             colour = "dark grey",
             linetype ="dashed") +
  scale_y_continuous(breaks = c(0, 25, 50, 75, 100),
                    labels = c("0%", "25%", "50%", "75%", "100%"),
                    limits = c(0, 100)) +
  labs(title = "Nur die Kantonale Maturitätsschule für Erwachsene hat eine Frauenmehrheit im Schwerpunkt Biologie und Chemie \n",
       subtitle = "Durchschnittlicher Frauenanteil aller Gymnasialabschlüsse im Kanton Zürich nach Schule und Schwerpunktfach (2011-2020) \n",
       x = "",
       y = " \n Frauenanteil in Prozent",
       caption = "Quelle: Bildungsstatistik Kanton Zürich") +
  scale_x_continuous(breaks = ms_schule_sp_gym_2$order,
                     labels = ms_schule_sp_gym_2$schule) +
  coord_flip() +
  theme_jr() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 0,
                                   hjust = 0.5),
        axis.text.y = element_text(size = 12),
        axis.title.x = element_text(vjust = -1),
        plot.title = element_text(size = 18,
                                  vjust = 3),
        plot.subtitle = element_text(size = 14),
        strip.background = element_rect(fill="#8700f9"),
        strip.text = element_text(size = 12,
                                  colour = 'white'))
## Warning: The labeller API has been updated. Labellers taking `variable` and
## `value` arguments are now deprecated. See labellers documentation.
schule_schwerpunkt_gym_2 # plotten

# ggsave("graphics/mean_frauen_nach_schwerpunkt_und_schule_2_neu.png", plot = schule_schwerpunkt_gym_2, height = 12, width = 14)