1 Workspace leeren, Ordner definieren und Packages laden

# Arbeitsspeicher leeren und Optionen setzen
rm(list=ls(all=TRUE))
options(stringsAsFactors = F)

# Arbeitsordner
setwd("/Users/Stephanie/Documents/UZH/R-Files/VB_DDJ/Blogbeitrag")

# Installieren/Laden von Paketen
list_packages <- c("dplyr", "tidyr", "foreign","ggplot2","scales","readxl",
                   "plotly", "ggthemes", "sf", "ggrepel", "scales", "stats",
                   "tidyverse", "RColorBrewer", "viridis", "data.table", "ggpubr",
                   "tidytext")

lapply(list_packages, library, character.only = TRUE)

2 Daten einlesen

data_annabeau <- read.csv("annabeau_data.csv", header=TRUE, sep= ",", stringsAsFactors = FALSE)
data_annajetzt <- read.csv("annajetzt_data.csv", header=TRUE, sep=",", stringsAsFactors = FALSE)

3 Datensatz “annajetzt” bereinigen (neue Variable aus MC-Variable)

annajetzt_diskr <- data_annajetzt %>% 
  mutate(age_groups = case_when(  
    age >= 16  & age <= 30 ~ '16 bis 30',
    age >= 31  & age <= 45 ~ '31 bis 45',
    age >= 46  & age <= 60 ~ '46 bis 60',
    age >= 61  & age <= 75 ~ '61 bis 75',
    age >= 76  & age <= 100 ~ '76 und älter')) %>%  
  select(weight, age_groups, sex, starts_with("jobExpPast")) %>%  # alle Variablen die mit "jobExpPast" starten wählen 
  pivot_longer(!weight:sex, names_to = "jobExpPast", values_to = "var.label") %>%  # reshape long
  mutate(var.code = case_when(var.label == "Y" ~ 1,
                              var.label == "" ~ 0,
                              TRUE ~ NA_real_)) %>%
  mutate(sum = sum(var.code, na.rm=T)) %>% 
  filter(sum != 0)  %>% # Wenn eine Person keine Antwortoption gewählt hat, wird sie ausgeschlossen
  group_by(jobExpPast, var.code, sex, age_groups) %>%
  summarise(Nweighted = sum(weight),.groups = 'drop') %>% #Gewichtung miteinbeziehen
  group_by(jobExpPast, sex) %>%
  mutate(Percentage=Nweighted/sum(Nweighted)*100) %>%
  filter(var.code == 1) %>% 
  mutate(jobDiskr = case_when(  
      jobExpPast %in% "jobExpPast_SQ001" ~ "Sexualisierte Sprüche und Witze",
      jobExpPast %in% "jobExpPast_SQ002" ~ "Sexuelle Belästigung durch\n Vorgesetzte/n",
      jobExpPast %in% "jobExpPast_SQ003" ~ "Sexuelle Belästigung\n durch Arbeitskolleg:innen",
      jobExpPast %in% "jobExpPast_SQ004" ~ "Diskriminierung auf\n Grund des Geschlechts",
      jobExpPast %in% "jobExpPast_SQ005" ~ "Frage nach Schwangerschaft oder\n Kinderwunsch bei Vorstellungsgespräch",
      jobExpPast %in% "jobExpPast_SQ006" ~ "Frage nach Familienplanung\n während Arbeitsverhältnis",
      jobExpPast %in% "jobExpPast_SQ007" ~ "Ausschluss von Projekten/Tätigkeiten\n auf Grund der Familiensituation",
      jobExpPast %in% "jobExpPast_SQ008" ~ "Nichts davon"))

4 Datensatz “annabeau” bereinigen (neue Variable aus MC-Variable)

annabeau_diskr <- data_annabeau %>% 
 mutate(age_groups = case_when(  
    age >= 16  & age <= 30 ~ '16 bis 30',
    age >= 31  & age <= 45 ~ '31 bis 45',
    age >= 46  & age <= 60 ~ '46 bis 60',
    age >= 61  & age <= 75 ~ '61 bis 75',
    age >= 76  & age <= 100 ~ '76 und älter')) %>% 
  select(weight, age_groups, gender, starts_with("notOkJob")) %>%
  pivot_longer(!weight:gender, names_to = "notOkJob", values_to = "var.label") %>%  # reshape long
  mutate(var.code = case_when(var.label == "Y" ~ 1,
                              var.label == "" ~ 0,
                              TRUE ~ NA_real_)) %>%
  mutate(sum = sum(var.code, na.rm=T)) %>% 
  filter(sum != 0)  %>% # Wenn eine Person keine Antwortoption gewählt hat, wird sie ausgeschlossen
  #group_by(notOkJob, var.code, gender, age_groups, partei2) %>%
  group_by(notOkJob, var.code, gender, age_groups) %>%
  summarise(Nweighted = sum(weight),.groups = 'drop') %>% #Gewichtung miteinbeziehen
  group_by(notOkJob, gender) %>%
  mutate(Percentage=Nweighted/sum(Nweighted)*100) %>%
  filter(var.code == 1) %>% 
  mutate(jobDiskr = case_when(  
    notOkJob %in% "notOkJob_SQ001" ~ "Kompliment zur Kleidung",
    notOkJob %in% "notOkJob_SQ002" ~ "Kompliment zum Äussern",
    notOkJob %in% "notOkJob_SQ003" ~ "Körperbetonte Kleidung tragen",
    notOkJob %in% "notOkJob_SQ004" ~ "Fragen nach sexueller Orientierung",
    notOkJob %in% "notOkJob_SQ005" ~ "Fragen nach Beziehungsstatus",
    notOkJob %in% "notOkJob_SQ006" ~ "Berührung am Arm, Schultern, Rücken",
    notOkJob %in% "notOkJob_SQ007" ~ "Berührung von Taille, Bauch",
    notOkJob %in% "notOkJob_SQ008" ~ "Flirten im Büro",
    notOkJob %in% "notOkJob_SQ009" ~ "Feuchtfröhliche Betriebsfeiern",
    notOkJob %in% "notOkJob_SQ010" ~ "Mit Arbeitskolleg:innen über Körper/Aussehen\nvon Arbeitskolleg:innen sprechen",
    notOkJob %in% "notOkJob_SQ011" ~ "Mit anderen über das Sexleben\nvon Arbeitskolleg:in sprechen",
    notOkJob %in% "notOkJob_SQ012" ~ "Frage nach Schwangerschaft oder\nFamilienplanung von Arbeitskolleg:innen",
    notOkJob %in% "notOkJob_SQ013" ~ "Frage nach Schwangerschaft oder\nFamilienplanung von Untergebenen",
    notOkJob %in% "notOkJob_SQ014" ~ "Frage nach Schwangerschaft oder\nFamilienplanung beim Vorstellungsgespräch",
    notOkJob %in% "notOkJob_SQXXX" ~ "Nichts davon"
))

5 Plots vorbereiten - Theme und Altersgruppen

theme_sbl <- theme_bw() + 
  theme(plot.title = element_text(color = "gray27", size=30, face = "bold"),
        plot.title.position = "plot",
        plot.subtitle = element_text(size = 22),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.border = element_blank(),
        #plot.caption=element_text(hjust = 0),
        #legend.position = "right",
        #axis.line.x = element_line(colour = "black"),
        axis.line.x = element_blank(),
        axis.line.y = element_blank(),
        axis.ticks = element_blank(),
        legend.box.background = element_rect(colour = "black", linewidth = 0.5))

level_fill_age <- c("16 bis 30", "31 bis 45", "46 bis 60", "61 bis 75", "76 und älter")

6 Annajetzt - Erlebte diskriminierende Handlungen am Arbeitsplatz

level_order_aj_diskr <- c('Sexualisierte Sprüche und Witze', 'Diskriminierung auf\n Grund des Geschlechts', 
                 'Frage nach Schwangerschaft oder\n Kinderwunsch bei Vorstellungsgespräch',
                 'Frage nach Familienplanung\n während Arbeitsverhältnis', 'Sexuelle Belästigung\n durch Arbeitskolleg:innen',
                 'Sexuelle Belästigung durch\n Vorgesetzte/n', 
                 'Ausschluss von Projekten/Tätigkeiten\n auf Grund der Familiensituation', 'Nichts davon') 

annajetzt_diskr$age_groups <- factor(annajetzt_diskr$age_groups, levels=rev(level_fill_age))

plot_frauen_erfahrungen <- ggplot(annajetzt_diskr, aes(x = factor(jobDiskr, 
                                                                  level = rev(level_order_aj_diskr)), 
                                                       y = (Percentage/100), 
                            fill = age_groups, 
                            label = ifelse(Percentage > 1, scales::percent((Percentage/100), accuracy = 1), ""))) +
  geom_bar(stat = "identity", position = "stack", width = 0.5)+
  geom_text(color=ifelse(annajetzt_diskr$age_groups=="16 bis 30", 'gray95', 'black'),
            size = 4, 
            position = position_stack(vjust = 0.5), 
            fontface = "bold") +
  ggtitle("Über 50% der befragten Frauen sahen sich am Arbeitsplatz schon\nsexualisierten Sprüchen und Witzen ausgesetzt",
          subtitle = "Erfahrungen, die Frauen in ihrem bisherigen Erwerbsleben gemacht haben") +
  scale_fill_brewer(palette = "Purples")+
  scale_y_continuous(limits = c(0,0.8), breaks = seq(0, 1, by = 0.1), 
                     labels = scales::percent, expand = expansion(mult = c(0, 0.05)))+
  ylab("")+
  xlab("")+
  labs(caption = "Daten: sotomo")+
  coord_flip()+
  guides(fill = guide_legend(title = "Altersgruppen\n(in Jahren)", reverse = TRUE))+
  theme_sbl+
  theme(axis.text.x = element_text(size = 12),
        axis.text.y = element_text(size = 12),
        legend.text=element_text(size=12),
        legend.position = c(0.88, 0.5),
        legend.key.size = unit(1.5, 'cm'),
        plot.title = element_text(size=17),
        plot.subtitle = element_text(size = 12),
        legend.title = element_text(size=12, face = "bold"),
        plot.caption = element_text(size = 12, face = "italic"))

plot_frauen_erfahrungen

7 Annabeau - Potenziell diskriminierende Handlungen am Arbeitsplatz

level_order_ab_diskr <- c('Kompliment zur Kleidung', 'Kompliment zum Äussern',
                          'Fragen nach Beziehungsstatus', 'Körperbetonte Kleidung tragen', 'Berührung am Arm, Schultern, Rücken',
                          'Frage nach Schwangerschaft oder\nFamilienplanung von Arbeitskolleg:innen', 'Feuchtfröhliche Betriebsfeiern',
                          'Flirten im Büro', 'Fragen nach sexueller Orientierung', 'Mit Arbeitskolleg:innen über Körper/Aussehen\nvon Arbeitskolleg:innen sprechen',
                          'Frage nach Schwangerschaft oder\nFamilienplanung von Untergebenen', 'Frage nach Schwangerschaft oder\nFamilienplanung beim Vorstellungsgespräch',
                          'Mit anderen über das Sexleben\nvon Arbeitskolleg:in sprechen', 'Berührung von Taille, Bauch',
                          'Nichts davon')

annabeau_diskr$age_groups <- factor(annabeau_diskr$age_groups, levels=rev(level_fill_age))

plot_maenner_ok <- ggplot(annabeau_diskr, aes(x = factor(jobDiskr, level = rev(level_order_ab_diskr)), 
                                              y = (Percentage/100), 
                            fill = age_groups,
                            label = ifelse(Percentage > 1, scales::percent((Percentage/100), accuracy = 1), ""))) +
  geom_bar(stat = "identity", position = "stack", width = 0.5)+
  geom_text(color=ifelse(annabeau_diskr$age_groups=="16 bis 30", 'gray95', 'black'),
            size = 3.5, position = position_stack(vjust = 0.5), fontface = "bold") +
  ggtitle("Im Vergleich zu ihren nächstälteren Kollegen zeigen Männer bis 30 Jahre meistens\nmehr Sensibilität bezüglich diskrimierender Handlungen am Arbeitsplatz",
          subtitle = "Handlungen, die im Umgang mit Arbeitskolleg:innen als 'völlig in Ordnung' eingeschätzt werden") +
  scale_fill_brewer(palette = "BuGn")+
  scale_y_continuous(limits = c(0,0.8), breaks = seq(0, 1, by = 0.1), 
                     labels = scales::percent, expand = expansion(mult = c(0, 0.05)))+
  ylab("")+
  xlab("")+
  labs(caption = "Daten: sotomo")+
  coord_flip()+
  guides(fill = guide_legend(title = "Altersgruppen\n(in Jahren)", reverse = TRUE))+
  theme_sbl+
  theme(axis.text.x = element_text(size = 12),
        axis.text.y = element_text(size = 12),
        legend.text=element_text(size=12),
        legend.position = c(0.88, 0.5),
        legend.key.size = unit(1.5, 'cm'),
        plot.title = element_text(size=17),
        plot.subtitle = element_text(size = 12),
        legend.title = element_text(size=12, face = "bold"),
        plot.caption = element_text(size = 12, face = "italic"))

plot_maenner_ok

8 Diskriminierende Handlungen nach Partei

8.1 Datensatz “Annajetzt” bereinigen und filtern

annajetzt_diskr_partei <- data_annajetzt %>% 
  mutate(age_groups = case_when(  
    age >= 16  & age <= 30 ~ '16 bis 30',
    age >= 31  & age <= 45 ~ '31 bis 45',
    age >= 46  & age <= 60 ~ '46 bis 60',
    age >= 61  & age <= 75 ~ '61 bis 75',
    age >= 76  & age <= 100 ~ '76 und älter')) %>% 
  mutate(party = case_when(
    party %in% "A1" ~ "Rechts", #ehemals SVP
    party %in% "A2" ~ "Links", #ehemals SP
    party %in% "A3" ~ "Mitte", #ehemals FDP
    party %in% "A4" ~ "Links", #ehemals GPS
    party %in% "A5" ~ "Mitte",
    party %in% "A6" ~ "Mitte", #ehemals GLP
    party %in% "A8" ~ "Mitte", # EVP zur Mitte hinzugefügt, da keine Ausprägung bei annabeau
    party %in% "A95" ~ "Rechts", # EDU zur Option "recht" hinzugefügt, da keine separate Kategorie
    party %in% "A10" ~ "Links",
    party %in% "A11" ~ "Rechts",
    party %in% "A12" ~ "and",
    party %in% "A13" ~ "weiss-nicht",
  )) %>% 
  filter(party != "and" & party != "weiss-nicht") %>%
  select(weight, age_groups, party, sex, starts_with("jobExpPast")) %>%  # alle Variablen die mit "jobExpPast" starten wählen 
  pivot_longer(!weight:sex, names_to = "jobExpPast", values_to = "var.label") %>%  # reshape long
  mutate(var.code = case_when(var.label == "Y" ~ 1,
                              var.label == "" ~ 0,
                              TRUE ~ NA_real_)) %>%
  mutate(sum = sum(var.code, na.rm=T)) %>% 
  filter(sum != 0)  %>% # Wenn eine Person keine Antwortoption gewählt hat, wird sie ausgeschlossen
  group_by(jobExpPast, var.code, sex, age_groups, party) %>%
  summarise(Nweighted = sum(weight),.groups = 'drop') %>% #Gewichtung miteinbeziehen
  group_by(jobExpPast, sex) %>%
  mutate(Percentage=Nweighted/sum(Nweighted)*100) %>%
  filter(var.code == 1) %>% 
  mutate(jobDiskr = case_when(  
    jobExpPast %in% "jobExpPast_SQ001" ~ "Sexualisierte\nSprüche und Witze",
    jobExpPast %in% "jobExpPast_SQ002" ~ "Sexuelle Belästigung durch\n Vorgesetzte/n",
    jobExpPast %in% "jobExpPast_SQ003" ~ "Sexuelle Belästigung\n durch Arbeitskolleg:innen",
    jobExpPast %in% "jobExpPast_SQ004" ~ "Diskriminierung auf\n Grund des Geschlechts",
    jobExpPast %in% "jobExpPast_SQ005" ~ "Frage nach Schwangerschaft oder\n Kinderwunsch bei Vorstellungsgespräch",
    jobExpPast %in% "jobExpPast_SQ006" ~ "Frage nach Familienplanung\n während Arbeitsverhältnis",
    jobExpPast %in% "jobExpPast_SQ007" ~ "Ausschluss von Projekten/Tätigkeiten\n auf Grund der Familiensituation",
    jobExpPast %in% "jobExpPast_SQ008" ~ "Nichts davon"))

annajetzt_diskr_junge <- annajetzt_diskr_partei %>% 
  filter(age_groups != "46 bis 60" & age_groups != "61 bis 75" & age_groups != "76 und älter") %>% 
  filter(jobDiskr == "Sexualisierte\nSprüche und Witze" |
           jobDiskr == "Diskriminierung auf\n Grund des Geschlechts" |
           jobDiskr == "Sexuelle Belästigung\n durch Arbeitskolleg:innen")

8.2 Datensatz “Annabeau” bereinigen und filtern

annabeau_diskr_partei <- data_annabeau %>% 
  mutate(age_groups = case_when(  
    age >= 16  & age <= 30 ~ '16 bis 30',
    age >= 31  & age <= 45 ~ '31 bis 45',
    age >= 46  & age <= 60 ~ '46 bis 60',
    age >= 61  & age <= 75 ~ '61 bis 75',
    age >= 76  & age <= 100 ~ '76 und älter')) %>% 
  rename(party = partei2) %>% 
  mutate(party = ifelse(party == "", NA, party)) %>% 
  filter(!is.na(party)) %>% 
  mutate(party = case_when(
    party %in% "svp" ~ "Rechts",
    party %in% "sp" ~ "Links", 
    party %in% "fdp" ~ "Mitte", 
    party %in% "gps" ~ "Links",
    party %in% "glp" ~ "Mitte",
    party %in% "recht" ~ "Rechts", 
    party %in% "A10" ~ "Links",
    party %in% "A11" ~ "Rechts",
  )) %>% 
  filter(party != "and") %>%
  select(weight, age_groups, party, gender, starts_with("notOkJob")) %>%
  pivot_longer(!weight:gender, names_to = "notOkJob", values_to = "var.label") %>%  # reshape long
  mutate(var.code = case_when(var.label == "Y" ~ 1,
                              var.label == "" ~ 0,
                              TRUE ~ NA_real_)) %>%
  mutate(sum = sum(var.code, na.rm=T)) %>% 
  filter(sum != 0)  %>% # Wenn eine Person keine Antwortoption gewählt hat, wird sie ausgeschlossen
  group_by(notOkJob, var.code, gender, age_groups, party) %>%
  summarise(Nweighted = sum(weight),.groups = 'drop') %>% #Gewichtung miteinbeziehen
  group_by(notOkJob, gender) %>%
  mutate(Percentage=Nweighted/sum(Nweighted)*100) %>%
  filter(var.code == 1) %>% 
  mutate(jobDiskr = case_when(  
    notOkJob %in% "notOkJob_SQ001" ~ "Kompliment zur Kleidung",
    notOkJob %in% "notOkJob_SQ002" ~ "Kompliment zum Äussern",
    notOkJob %in% "notOkJob_SQ003" ~ "Körperbetonte Kleidung tragen",
    notOkJob %in% "notOkJob_SQ004" ~ "Fragen nach sexueller Orientierung",
    notOkJob %in% "notOkJob_SQ005" ~ "Fragen nach Beziehungsstatus",
    notOkJob %in% "notOkJob_SQ006" ~ "Berührung\nam Arm, Schultern, Rücken",
    notOkJob %in% "notOkJob_SQ007" ~ "Berührung von Taille, Bauch",
    notOkJob %in% "notOkJob_SQ008" ~ "Flirten im Büro",
    notOkJob %in% "notOkJob_SQ009" ~ "Feuchtfröhliche Betriebsfeiern",
    notOkJob %in% "notOkJob_SQ010" ~ "Mit Arbeitskolleg:innen über Körper/Aussehen\nvon Arbeitskolleg:innen sprechen",
    notOkJob %in% "notOkJob_SQ011" ~ "Mit anderen über das Sexleben\nvon Arbeitskolleg:in sprechen",
    notOkJob %in% "notOkJob_SQ012" ~ "Frage nach Schwangerschaft oder\nFamilienplanung von Arbeitskolleg:innen",
    notOkJob %in% "notOkJob_SQ013" ~ "Frage nach Schwangerschaft oder\nFamilienplanung von Untergebenen",
    notOkJob %in% "notOkJob_SQ014" ~ "Frage nach Schwangerschaft oder\nFamilienplanung beim Vorstellungsgespräch",
    notOkJob %in% "notOkJob_SQXXX" ~ "Nichts davon"
  ))

annabeau_diskr_junge <- annabeau_diskr_partei %>% 
   filter(age_groups != "46 bis 60" & age_groups != "61 bis 75" & age_groups != "76 und älter") %>%
  filter(jobDiskr == "Kompliment zum Äussern" | jobDiskr == "Flirten im Büro" | jobDiskr == "Berührung\nam Arm, Schultern, Rücken")

9 Annajetzt - Diskriminierende Handlungen nach Parteizuordnungen

level_order_aj_party <- c('Sexualisierte\nSprüche und Witze', 
                          'Diskriminierung auf\n Grund des Geschlechts',
                          'Sexuelle Belästigung\n durch Arbeitskolleg:innen')

text_u30 <- data.frame(
  label = c("16 bis 30 J.", "", ""),
  jobDiskr = c('Sexualisierte\nSprüche und Witze', 
                          'Diskriminierung auf\n Grund des Geschlechts',
                          'Sexuelle Belästigung\n durch Arbeitskolleg:innen'),
  x     = c(1.8, 1.8, 1.8),
  y     = c(0.03, 0.03, 0.03)
)

text_31_45 <- data.frame(
  label = c("31 bis 45 J.", "", ""),
  jobDiskr = c('Sexualisierte\nSprüche und Witze', 
                          'Diskriminierung auf\n Grund des Geschlechts',
                          'Sexuelle Belästigung\n durch Arbeitskolleg:innen'),
  x     = c(2.15, 2.15, 2.15),
  y     = c(0.08, 0.08, 0.08)
)

frauen_erfahrungen_partei <- ggplot(annajetzt_diskr_junge, aes(x = factor(party, level = rev(c("Links", "Mitte", "Rechts"))), 
                                  y = (Percentage/100))) +
  geom_line(aes(group = party)) +
  geom_point(aes(color = age_groups))+
  scale_color_manual(values = c("16 bis 30" = "#54278f", "31 bis 45" = "#9e9ac8"))+
  scale_y_continuous(limits = c(0,0.2), breaks = seq(0, 1, by = 0.1), 
                     labels = scales::percent, expand = expansion(mult = c(0, 0.05)))+
  #guides(color = guide_legend(title = "Altersgruppen\n(in Jahren)", reverse = TRUE))+
  coord_flip()+
  ylab("")+
  xlab("")+
  ggtitle("Frauen, die sich eher politisch links orientieren, fühlen sich am Arbeitsplatz\nöfter diskriminiert als gleichaltrige, politisch rechts orientierte Kolleginnen",
          subtitle = "Erfahrungen, die Frauen in ihrem bisherigen Erwerbsleben am Arbeitsplatz gemacht haben, nach politischer Orientierung") +
  labs(caption = "Daten: sotomo")+
  facet_wrap(~ factor(jobDiskr, level = level_order_aj_party), scales = "free_y")+
  geom_text(
  data    = text_u30,
  mapping = aes(x = x, y = y, label = label),
  color = "#54278f", size = 3, fontface = "bold")+
  geom_text(
  data    = text_31_45,
  mapping = aes(x = x, y = y, label = label),
  color = "#9e9ac8", size = 3, fontface = "bold")+
  theme_sbl+
  theme(strip.background = element_blank(),
        strip.text = element_text(face = "bold.italic", size = 10),
        panel.spacing=unit(1,"lines"),
        legend.position = "none",
        plot.title = element_text(size=17),
        plot.subtitle = element_text(size = 12),
        plot.caption = element_text(face = "italic"))

frauen_erfahrungen_partei

ggsave(frauen_erfahrungen_partei, filename = "frauen_erfahrungen_partei_neu.png", width = 0.5*20, height = 0.5*9)

10 - Annabeau - Potenziell diskriminierende Handlungen nach Partei

level_order_ab_party <- c('Kompliment zum Äussern', 
                          'Berührung\nam Arm, Schultern, Rücken',
                          'Flirten im Büro')

text_u30_m <- data.frame(
  label = c("16 bis 30 J.", "", ""),
  jobDiskr = c('Kompliment zum Äussern', 
                          'Berührung\nam Arm, Schultern, Rücken',
                          'Flirten im Büro'),
  x     = c(2.15, 2.15, 2.15),
  y     = c(0.03, 0.03, 0.03)
)

text_31_45_m <- data.frame(
  label = c("31 bis 45 J.", "", ""),
  jobDiskr = c('Kompliment zum Äussern', 
                          'Berührung\nam Arm, Schultern, Rücken',
                          'Flirten im Büro'),
  x     = c(1.85, 1.85, 1.85),
  y     = c(0.06, 0.06, 0.06)
)

maenner_ok_partei <- ggplot(annabeau_diskr_junge, aes(x = factor(party, level = rev(c("Links", "Mitte", "Rechts"))), 
                                  y = (Percentage/100))) +
  geom_line(aes(group = party)) +
  geom_point(aes(color = age_groups))+
  scale_color_manual(values = c("16 bis 30" = "#006d2c", "31 bis 45" = "#74c476"))+
  scale_y_continuous(limits = c(0,0.2), breaks = seq(0, 1, by = 0.1), 
                     labels = scales::percent, expand = expansion(mult = c(0, 0.05)))+
  #guides(color = guide_legend(title = "Altersgruppen\n(in Jahren)", reverse = TRUE))+
  coord_flip()+
  ylab("")+
  xlab("")+
  ggtitle("Politisch links orientierte Männer finden sexualisiertes Verhalten am Arbeitsplatz\ngleich oder eher in Ordnung als gleichaltrige mitte- oder rechts-orientierte Männer",
          subtitle = "Einschätzung potenziell diskriminierender Handlungen am Arbeitsplatz als 'völlig in Ordnung', nach Parteiorientierung") +
  labs(caption = "Daten: sotomo")+
  facet_wrap(~ factor(jobDiskr, level = level_order_ab_party), scales = "free_y")+
  geom_text(
  data    = text_u30_m,
  mapping = aes(x = x, y = y, label = label),
  color = "#006d2c", size = 3, fontface = "bold")+
  geom_text(
  data    = text_31_45_m,
  mapping = aes(x = x, y = y, label = label),
  color = "#74c476", size = 3, fontface = "bold")+
  theme_sbl+
  theme(strip.background = element_blank(),
        strip.text = element_text(face = "bold.italic", size = 10),
        panel.spacing=unit(1,"lines"),
        legend.position = "none",
        plot.title = element_text(size=17),
        plot.subtitle = element_text(size = 12),
        plot.caption = element_text(face = "italic"))

maenner_ok_partei

ggsave(maenner_ok_partei, filename = "maenner_ok_partei_neu.png", width = 0.5*20, height = 0.5*9)