Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save StaffanBetner/af9270dc3f79b4c1e96b99037dd18e3d to your computer and use it in GitHub Desktop.
Save StaffanBetner/af9270dc3f79b4c1e96b99037dd18e3d to your computer and use it in GitHub Desktop.
library(tidyverse)
library(janitor)
library(pxweb)
library(scales)
get_pxweb_data(url = "http://api.scb.se/OV0104/v1/doris/sv/ssd/ME/ME0104/ME0104C/ME0104T3",
dims = list(Region = c('VR00'),
Partimm = c('*'),
ContentsCode = c('*'),
Tid = c('*')),
clean = TRUE) %>% as_tibble()->
resultat_data
resultat_data %>%
spread(ContentsCode, values) %>%
clean_names() %>%
select(-andel_roster_av_giltiga_roster) %>%
group_by(tid) %>%
mutate(andel = antal_roster/sum(antal_roster, na.rm = T)) %>%
select(-antal_roster) %>%
spread(parti_mm, andel) %>%
ungroup %>%
mutate_all(replace_na, 0) %>%
mutate(tid = tid %>% as.character() %>% parse_number()) %>%
select(-1)->
resultat_data
partycols <- c(
"Centerpartiet" = "#009933",
"Övriga partier" = "grey",
"Kristdemokraterna" = "#231977",
"Liberalerna" = "#6BB7EC",
"Miljöpartiet" = "#83CF39",
"Moderaterna" = "#1B49DD",
"Piratpartiet" = "#572B85",
"Socialdemokraterna" = "#EE2020",
"Sverigedemokraterna" = "#DDDD00",
"Vänsterpartiet" = "#AF0000"
)
resultat_data %>%
select(-`ej röstande`, -`ogiltiga valsedlar`) %>%
gather(`parti mm`, andel, 2:10) %>%
mutate(Parti = `parti mm` %>% factor(levels = c("Vänsterpartiet","Miljöpartiet","Socialdemokraterna",
"Centerpartiet","Liberalerna","Moderaterna","Kristdemokraterna","Sverigedemokraterna",
"övriga partier") %>% rev,
labels=c("Vänsterpartiet","Miljöpartiet","Socialdemokraterna",
"Centerpartiet","Liberalerna","Moderaterna","Kristdemokraterna","Sverigedemokraterna",
"Övriga partier") %>% rev)) %>%
ggplot(aes(tid, andel,color=`Parti`, fill=`Parti`))+geom_area()+
scale_color_manual(values=partycols)+
scale_fill_manual(values=partycols)+
scale_y_continuous(labels = scales::percent, limits=c(0,1), breaks=seq(0,1,0.1))+
labs(x=NULL, y="Andel av röstberättigade (%)")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment