R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Suomen sisäinen muuttoliike

Louhos-blogissa oli taannoin visualisointi suomalaisten maailmanlaajuisista muuttoliikkeistä. Samantyyppisen kuvion voi laatia tarkemmalla tasolla Suomen sisälläkin. Sopivaa aineistoa löytyy suoraan Tilastokeskuksen muuttoliike-tilastoista ja kuntien koordinaatit saa selvitettyä, ainakin sinnepäin, Wikipedian sivulta. Tilastokeskuksen tarjoamassa aineistossa on vain se ongelma, ettei kaikkien kuntien välisiä muuttoliikkeitä ole mahdollista hakea yhtä aikaa palvelun asettaman rivirajoituksen vuoksi. Niinpä seuraavassa onkin esimerkki Kangasalan tulo- ja lähtömuutosta vuosina 1987-2010.

Päätin kuvata muuttolikkeen kartalla viivoilla, joiden väri kertoo muuton suunnan ja paksuus muuttajien lukumäärän. Karttapohjan hakemiseen käytettiin sorvi-pakettia.

Seuraava R-koodi tuottaa alla olevan kaltaisen kuvan. Koodi olettaa tarvittavien tietojen löytyvän datakehikosta nimeltä d2. Sen tuottamiseen tarvittava R-koodi on kuvan alapuolella.

library(sorvi)
gadm<-GetGADM(resolution = "FIN_adm", taso = 4)
plot(gadm, col="black", border="grey25", bg="black", lwd=0.5)
for(i in 1:nrow(d2)) {
   lines(y=c(d2$lat.tulo[i], 61.463), x=c(d2$lon.tulo[i], 24.076), lwd=log10(abs(d2$nettomuutto[i]))*3, col=d2$col[i])
}
title("Kangasala - nettomuutto")
legend(x="topright", lwd=c(6), col=c("#0066CC", "#CC0000"), lty=1, legend=c("Tulomuutto","Lähtömuutto"), text.col="grey75")
legend(x="bottomright", lwd=c(1,2,3)*3, col="grey75", lty=1, legend=c("10", "100", "1000"), title="Henkilöä", text.col="grey75")

Suurin muuttovoitto Kangasalle suuntautuu Tampereelta. Suurin muuttotappio puolestaan suuntautuu lähialueille, kuten Nokialle, Pälkäneelle ja Orivedelle, sekä suuriin kaupunkeihin, kuten Helsinkiin ja Turkuun.

d2<-structure(list(lat.tulo = c(60.633, 63.923, 61.35, 60.801, 63.1,
63, 63.752, 60.803, 62.3, 61.983, 61.316, 60.633, 62.183, 63.544,
64.083, 65.317, 60.867, 61.567, 65.967, 64.677, 63.1, 65.817,
60.713, 61.067, 60.417, 65.733, 60.46, 64.125, 61.433, 60.8,
66.5, 60.819, 62.9, 60.117, 61.867, 64.233, 60.407, 63.844, 60.851,
62.27, 61.633, 60.285, 61.483, 60.944, 60.4, 62.317, 61.772,
60.209, 65.017, 60.981, 61.317, 62.033, 61.169, 61, 60.459, 61.317,
61.267, 61.467, 61.677, 60.17, 61.333, 61.5), lon.tulo = c(25.317,
24.958, 25.283, 21.411, 21.6, 23.817, 25.329, 23.483, 27.133,
24.083, 22.135, 24.876, 27.833, 29.145, 24.55, 25.367, 26.7,
25.183, 29.183, 24.459, 23.083, 24.533, 24.438, 24.383, 24.333,
24.567, 26.946, 29.511, 21.883, 25.736, 25.717, 23.621, 27.683,
24.433, 25.2, 27.683, 25.036, 23.128, 23.043, 23.7, 23.2, 25.05,
21.783, 25.937, 25.117, 27.917, 23.067, 24.658, 25.467, 25.655,
23.617, 24.633, 23.858, 24.45, 22.25, 23.75, 24.033, 23.5, 24.363,
24.931, 24.28, 23.75), nettomuutto = c(11L, 11L, 11L, -11L, 11L,
12L, 12L, 12L, 12L, 12L, 13L, 13L, -13L, 13L, 13L, -14L, 14L,
14L, -14L, 14L, 15L, 16L, 16L, -17L, -17L, 18L, -18L, 18L, 18L,
-20L, 20L, 21L, 22L, 25L, 26L, 26L, 26L, 27L, 27L, 28L, -29L,
30L, 31L, 33L, 34L, 35L, -36L, 43L, 54L, 56L, -71L, 85L, -104L,
-110L, -118L, -136L, -141L, -166L, -211L, -219L, -373L, 4000L
), col = c("#0066CC66", "#0066CC66", "#0066CC66", "#CC000066",
"#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66",
"#0066CC66", "#0066CC66", "#0066CC66", "#CC000066", "#0066CC66",
"#0066CC66", "#CC000066", "#0066CC66", "#0066CC66", "#CC000066",
"#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66", "#CC000066",
"#CC000066", "#0066CC66", "#CC000066", "#0066CC66", "#0066CC66",
"#CC000066", "#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66",
"#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66", "#0066CC66",
"#0066CC66", "#CC000066", "#0066CC66", "#0066CC66", "#0066CC66",
"#0066CC66", "#0066CC66", "#CC000066", "#0066CC66", "#0066CC66",
"#0066CC66", "#CC000066", "#0066CC66", "#CC000066", "#CC000066",
"#CC000066", "#CC000066", "#CC000066", "#CC000066", "#CC000066",
"#CC000066", "#CC000066", "#0066CC66")), .Names = c("lat.tulo",
"lon.tulo", "nettomuutto", "col"), class = "data.frame", row.names = c(177L,
184L, 197L, 301L, 303L, 2L, 20L, 60L, 207L, 245L, 28L, 42L, 62L,
187L, 322L, 46L, 116L, 120L, 126L, 231L, 88L, 94L, 153L, 30L,
314L, 92L, 115L, 119L, 295L, 190L, 243L, 17L, 122L, 104L, 70L,
74L, 292L, 110L, 152L, 318L, 44L, 306L, 214L, 182L, 96L, 307L,
49L, 12L, 194L, 132L, 310L, 178L, 1L, 45L, 290L, 144L, 304L,
185L, 192L, 35L, 229L, 281L))

One Response to “Suomen sisäinen muuttoliike”


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *