Distribution

btw17 %>%
  select(Bundesland, `Wahlberechtigte (A)`, `Wähler (B)`, `Ungültige`:`V-Partei³`) %>%
  gather(key = Partei, value = Stimmen, CDU:`V-Partei³`) %>%
  group_by(Partei) %>%
  summarise(Prozent = sum(Stimmen) / sum(`Gültige`)) %>%
  mutate(Parteien = ifelse(Prozent <= .05, "Sonstige", Partei)) %>% 
  ggplot(aes(x = reorder(Parteien, -Prozent), y = Prozent, fill = Parteien)) +
  geom_col() +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(guide = FALSE, values = partei_colors) +
  labs(title = "Stimmanteil aller Parteien bundesweit", x = "Partei", y = "Stimmanteil")

Distribution by State

btw_long %>%
  ggplot(aes(x = reorder(Parteien, Prozent), y = Prozent, fill = Parteien)) +
  geom_col() +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_manual(breaks = names(partei_colors), values = partei_colors) +
  labs(title = "Stimmanteil aller Parteien >5% pro Bundesland") +
  facet_wrap(~ Bundesland) +
  coord_flip()