Alla olevassa kartassa esitetään 2023 vuoden eduskuntavaalien äänestysaluekohtaiset tulokset viiden suosituimman ehdokkaan osalta. Alueen väri merkitsee suosituinta ehdokasta. Siirtämällä osoittimen alueen päälle näet viiden suosituimmain ehdokkaan tulokset.
Tiedot on ladattavissa Oikeusministeriön vaalien tulospalvelusta.
</>
library(tidyverse)
library(leaflet)
library(htmlwidgets)
library(glue)
library(sf)
# dir.create("./vaalidata/", recursive = TRUE)
# download.file("https://tulospalvelu.vaalit.fi/EKV-2023/ekv-2023_ehd_maa.csv.zip", "./vaalidata/ekv-2023_ehd_maa.csv.zip")
# unzip(zipfile = "./vaalidata/ekv-2023_ehd_maa.csv.zip", exdir = "./vaalidata/")
<- read_csv2("./vaalidata/ekv-2023_ehd_maa.csv.zip", col_names = FALSE)
dat <- dat %>%
dat_hel # valitaan vaan Helsingin äänet JA
filter(X6 == "HEL",
# ainoastaan äänestyspaikkakohtaiset tiedot
!grepl("\\*", X5),
nchar(X5) == 4) %>%
select(X5,X6,X15,X16,X12,X18,X19,X35) %>%
# 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"),
# äänimäärä ja ehdokasnumero kokonaisluvuiksi
X35 = as.integer(X35),
X15 = as.integer(X15))
<- dat_hel %>%
dat_alue # lasketaan uurnakohtaiset summat
group_by(X5) %>%
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(X5,X16) %>%
arrange(desc(osuus)) %>%
slice(1:5) %>%
mutate(rank = 1:n()) %>%
ungroup() %>%
mutate(nimi = paste(X18,X19)) %>%
select(X5,X16,nimi,X12,X35,rank,osuus) %>%
arrange(X5,rank)
<- dat_alue %>% filter(rank == 1)
dat_alue_voittaja <- dat_alue %>%
dat_alue_top3 mutate(nimi = glue("<tr><td>{rank}</td><td>{nimi}</td><td>{X12}</td><td>{osuus}%</td><td>{X35}</td></tr>")) %>%
select(-osuus,- X35,-X12) %>%
pivot_wider(names_from = rank, values_from = nimi) %>%
setNames(c("X5","X16","t1","t2","t3","t4","t5"))
<- st_read(dsn = "./SHP/Aanestysaluejako_PKS_2023.shp", quiet = TRUE)
hel_aanestysalueet # hel_aanestysalueet <- st_read(dsn = "./SHP/Aanestysaluejako_PKS_2019.shp", quiet = TRUE)
<- st_transform(hel_aanestysalueet, crs = 4326)
hel_aanestysalueet $X5 <- paste0("0", hel_aanestysalueet$tunnus)
hel_aanestysalueet
$X5 <- stringr::str_pad(hel_aanestysalueet$tunnus, width = 4, pad = "0")
hel_aanestysalueet
<- right_join(hel_aanestysalueet, dat_alue_top3, by = c("X5" = "X5"))
dat_kartta_top3 <- right_join(hel_aanestysalueet %>% select(-nimi), dat_alue_voittaja, by = c("X5" = "X5"))
dat_kartta_voittaja
#| column: page
library(tidyverse)
library(leaflet)
library(htmlwidgets)
library(glue)
library(sf)
<- leaflet::colorFactor(palette = "Set1", domain = factor(dat_kartta_voittaja$nimi))
pal
<- sprintf(
labels '<div class="card" style="width: auto;">
<div class="card-body">
<h5 class="card-title">%s</h5>
<table class="table table-sm">
<thead>
<tr>
<th scope="col">sija</th>
<th scope="col">nimi</th>
<th scope="col">puolue</th>
<th scope="col">kannatus</th>
<th scope="col">äänet</th>
</tr>
</thead>
<tbody>
%s
%s
%s
%s
%s
</tbody>
</table>
</div>
</div>',
$X16, dat_kartta_top3$t1,
dat_kartta_top3$t2,
dat_kartta_top3$t3,
dat_kartta_top3$t4,
dat_kartta_top3$t5
dat_kartta_top3%>% lapply(htmltools::HTML)
)
leaflet(dat_kartta_voittaja) %>%
::setView(lng = 24.931,lat = 60.172, zoom = 12) %>%
leafletaddProviderTiles(provider = providers$CartoDB.Positron) %>%
addPolygons(fillColor = ~pal(factor(nimi)),
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",
"font-family" = "Courier New",
"padding" = "0px"),
textsize = "12px",
direction = "auto")
%>%
) addLegend(pal = pal, values = ~nimi, opacity = 0.7, title = "Äänestysalueen suosituin ehdokas",
position = "bottomright") %>%
::addFullscreenControl() leaflet.extras
Uudelleenkäyttö
CC BY 4.0
Viittaus
BibTeX-viittaus:
@online{kainu,
author = {Markus Kainu and Markus Kainu},
title = {Eduskuntavaalit 2023: puolueiden ja ehdokkaiden kannatukset
Helsingin äänestysalueilla},
date = {},
url = {https://markuskainu.fi/posts/2023-04-02-helsingin_aanestysalueet},
langid = {fi}
}
Viitatkaa tähän teokseen seuraavasti:
Markus Kainu, and Markus Kainu. n.d. “Eduskuntavaalit 2023:
puolueiden ja ehdokkaiden kannatukset Helsingin
äänestysalueilla.” https://markuskainu.fi/posts/2023-04-02-helsingin_aanestysalueet.