Kuntakohtaiset mitalisijat vuoden 2019 eduskuntavaaleissa. Alueen väri kertoo eniten ääniä saaneen puolueen. Siirrä osoitin kunnan päälle nähdäksesi kolme eniten ääniä saanutta! Lähdekoodi kartan alla!
Lähdekoodi
</>
library(tidyverse)
library(leaflet)
library(htmlwidgets)
library(glue)
library(sf)
<- tempfile()
flie download.file("https://tulospalvelu.vaalit.fi/EKV-2019/ekv-2019_ehd_maa.csv.zip", flie)
<- tempdir()
tmpdir unzip(zipfile = flie, exdir = tmpdir)
<- read_csv2(glue("{tmpdir}/ekv-2019_aea_maa.csv"), col_names = FALSE)
dat <- dat %>%
dat_kunnat filter(grepl("\\*", X5)) %>%
# äänimäärä ja ehdokasnumero kokonaisluvuiksi
mutate(X3 = as.integer(X3),
X35 = as.integer(X35),
X15 = as.integer(X15)) %>%
# vaalipiirit veks
filter(!is.na(X3)) %>%
# Merkistöenkoodaukset
mutate(X19 = iconv(x = X19, from = "Windows-1252", to = "UTF-8"),
X18 = iconv(x = X18, from = "Windows-1252", to = "UTF-8"),
X16 = iconv(x = X16, from = "Windows-1252", to = "UTF-8"),
X12 = iconv(x = X12, from = "Windows-1252", to = "UTF-8")) %>%
# filter(X3 == 924) %>%
select(X3,X5,X6,X12,X15,X16,X18,X19,X35)
<- dat_kunnat %>%
dat_alue # lasketaan kuntakohtaiset summat
group_by(X3) %>%
mutate(X35_summa = sum(X35, na.rm = TRUE)) %>%
ungroup() %>%
# Lasketaan kullekin uurnalla ja ehdokkaalle ääniosuus
mutate(osuus = round(X35 / X35_summa*100, 1)) %>%
group_by(X3,X16) %>%
arrange(desc(osuus)) %>%
slice(1:3) %>%
mutate(rank = 1:n()) %>%
ungroup() %>%
mutate(nimi = paste(X18,X19)) %>%
select(X3,X16,nimi,X12,X35,rank,osuus) %>%
arrange(X3,rank)
# puoluekohtaiset kannatukset
<- dat_kunnat %>%
dat_puoluekannatus # lasketaan kuntakohtaiset summat
group_by(X3) %>%
mutate(X35_summa = sum(X35, na.rm = TRUE)) %>%
ungroup() %>%
# lasketaan puoluekohtaiset äänet kussakin kunnassa
group_by(X3,X12) %>%
mutate(puolue_aanet = sum(X35, na.rm = TRUE)) %>%
ungroup() %>%
# valitaan yksi rivi per kunta ja puolue
distinct(X3,X12, .keep_all = TRUE) %>%
select(X3,X12,X16,puolue_aanet,X35_summa) %>%
arrange(desc(puolue_aanet)) %>%
# Lasketaan kullekin uurnalla ja ehdokkaalle ääniosuus
mutate(osuus = round(puolue_aanet / X35_summa*100, 1)) %>%
group_by(X3,X16) %>%
arrange(desc(osuus)) %>%
slice(1) %>%
mutate(rank = 1:n()) %>%
ungroup() %>%
arrange(X16,rank)
<- dat_alue %>% filter(rank == 1)
dat_alue_voittaja <- dat_alue %>%
dat_alue_top3 mutate(nimi = glue("{nimi} {X12} {osuus} % {X35} ääntä")) %>%
select(-osuus,-X35,-X12) %>%
spread(key = rank, value = nimi) %>%
setNames(c("X3","X16","t1","t2","t3"))
<- left_join(kunnat19, dat_alue_top3, by = c("NATCODE" = "X3"))
dat_kartta_top3 <- left_join(kunnat19, dat_alue_voittaja, by = c("NATCODE" = "X3"))
dat_kartta_voittaja <- left_join(kunnat19, dat_puoluekannatus, by = c("NATCODE" = "X3"))
dat_kartta_puolue
<- leaflet::colorFactor(palette = "Set3", domain = factor(dat_kartta_puolue$X12))
pal
<- sprintf(
labels "<italic>%s</italic><br/><strong>1. %s</strong><br/>2. %s<br/>3. %s<br/>",
$NAMEFIN, dat_kartta_top3$t1, dat_kartta_top3$t2, dat_kartta_top3$t3
dat_kartta_top3%>% lapply(htmltools::HTML)
)
leaflet(dat_kartta_voittaja) %>%
addProviderTiles(provider = providers$CartoDB.Positron) %>%
addPolygons(fillColor = ~pal(factor(X12)),
color = "white",
weight = 1,
opacity = 1,
dashArray = "3",
fillOpacity = 0.4,
highlight = highlightOptions(
weight = 2,
color = "#666",
dashArray = "",
fillOpacity = 0.4,
bringToFront = TRUE),
label = labels,
labelOptions = labelOptions(opacity = .7,
style = list("font-weight" = "normal",
padding = "2px 4px"),
textsize = "12px",
direction = "auto")
%>%
) addLegend(pal = pal, values = ~X12, opacity = 0.7, title = "Kunnan suosituin puolue",
position = "bottomright")
Uudelleenkäyttö
CC BY 4.0
Viittaus
BibTeX-viittaus:
@online{kainu,
author = {Markus Kainu and Markus Kainu},
title = {Eduskuntavaalit 2019: ehdokkaiden top 3 kuntatasolla},
date = {},
url = {https://markuskainu.fi/posts/2019-04-16-kuntien-top3-ehdokkaat},
langid = {fi}
}
Viitatkaa tähän teokseen seuraavasti:
Markus Kainu, and Markus Kainu. n.d. “Eduskuntavaalit 2019:
ehdokkaiden top 3 kuntatasolla.” https://markuskainu.fi/posts/2019-04-16-kuntien-top3-ehdokkaat.