Reading layer `Aanestysaluejako_PKS_2019' from data source
`/home/aurelius/btsync/web/markuskainu22/posts/2019-04-15-helsingin_aanestysalueet-top3/SHP/Aanestysaluejako_PKS_2019.shp'
using driver `ESRI Shapefile'
Simple feature collection with 303 features and 14 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 25472300 ymin: 6659096 xmax: 25514070 ymax: 6698783
Projected CRS: ETRS89_ETRS_GK25FIN_2010
Äänestysaluekohtaiset mitalisijat Helsingissä 2019 eduskuntavaaleissa. Alueen väri kertoo voittajan, siirrä osoitin alueen päälle nähdäksesi kolme parasta. Lähdekoodi kartan alla!
Lähdekoodi
[/kode]
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_hel # valitaan vaan Helsingin äänet JA
filter(X6 == "HEL",
# ainoastaan äänestyspaikkakohtaiset tiedot
!grepl("\\*", X5),
nchar(X5) == 4) %>%
select(X5,X6,X15,X16,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:3) %>%
mutate(rank = 1:n()) %>%
ungroup() %>%
mutate(nimi = paste(X18,X19)) %>%
select(X5,X16,nimi,X35,rank,osuus) %>%
arrange(X5,rank)
<- dat_alue %>% filter(rank == 1)
dat_alue_voittaja <- dat_alue %>%
dat_alue_top3 mutate(nimi = glue("{nimi} {osuus} % {X35} ääntä")) %>%
select(-osuus,- X35) %>%
spread(key = rank, value = nimi) %>%
setNames(c("X5","X16","t1","t2","t3"))
# äänestysalueet
<- readRDS(url("https://gitlab.com/muuankarski/kelagis_data/raw/master/rds/sf17_hel_aanestysalue.RDS"))
hel_aanestysalueet
<- left_join(hel_aanestysalueet, dat_alue_top3, by = c("tunnus" = "X5"))
dat_kartta_top3 <- left_join(hel_aanestysalueet, dat_alue_voittaja, by = c("tunnus" = "X5"))
dat_kartta_voittaja
<- leaflet::colorFactor(palette = "Set3", domain = factor(dat_kartta_voittaja$nimi))
pal
<- sprintf(
labels "<italic>%s</italic><br/><strong>1. %s</strong><br/>2. %s<br/>3. %s<br/>",
$nimi_fi, 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(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",
padding = "2px 4px"),
textsize = "12px",
direction = "auto")
%>%
) addLegend(pal = pal, values = ~nimi, opacity = 0.7, title = "Äänestysalueen suosituin ehdokas",
position = "bottomright")
Uudelleenkäyttö
Viittaus
BibTeX-viittaus:
@online{kainu2019,
author = {Kainu, Markus},
title = {Eduskuntavaalit 2019: Helsingin äänestysalueiden top 3},
date = {2019-04-15},
url = {https://markuskainu.fi/posts/2019-04-15-helsingin_aanestysalueet-top3/},
langid = {fi}
}
Viitatkaa tähän teokseen seuraavasti:
Kainu, Markus. 2019. “Eduskuntavaalit 2019: Helsingin
äänestysalueiden top 3.” April 15, 2019. https://markuskainu.fi/posts/2019-04-15-helsingin_aanestysalueet-top3/.