【R】都道府県別 人口を日本地図に表示
2019年12月17日
総務省統計局ホームページに発表されている平成29年の都道府県別推計人口(総人口)を地図に表示してみます。年代別(0~14歳、15~64歳、65歳以上)の表示もしてみます。
library(leaflet) options(scipen=100000) dat <- read.csv("http://www.dinov.tokyo/Data/JP_Pref/Pref_population.csv", header = TRUE, fileEncoding="CP932") windowsFonts(JP1=windowsFont("MS Gothic"), JP2=windowsFont("MS Mincho"), JP3=windowsFont("Meiryo"), JP4=windowsFont("Biz Gothic")) par(family="JP4") library(NipponMap) windows(width=2000, height=1200) layout(matrix(1:4, 2, 2)) datc_m <- cut(dat$総人口/1000000, hist(dat$総人口/1000000, plot=FALSE)$breaks, right=FALSE) datc_mcol <- rainbow(length(levels(datc_m)), start=0, end=0.9, alpha=0.6)[as.integer(datc_m)] dat0_m <- cut(dat$人口0_14/1000000, hist(dat$人口0_14/1000000, plot=FALSE)$breaks, right=FALSE) dat0_mcol <- rainbow(length(levels(dat0_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat0_m)] dat15_m <- cut(dat$人口15_64/1000000, hist(dat$人口15_64/1000000, plot=FALSE)$breaks, right=FALSE) dat15_mcol <- rainbow(length(levels(dat15_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat15_m)] dat65_m <- cut(dat$人口65_/1000000, hist(dat$人口65_/1000000, plot=FALSE)$breaks, right=FALSE) dat65_mcol <- rainbow(length(levels(dat65_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat65_m)] JapanPrefMap(datc_mcol, main="平成27年都道府県別 総人口(百万人) ") legend("bottomright", fill=rainbow(length(levels(datc_m)), alpha=0.6), legend=names(table(datc_m))) JapanPrefMap(dat0_mcol, main="平成29年都道府県別 0~14歳人口(百万人) ") legend("bottomright", fill=rainbow(length(levels(dat0_m)), alpha=0.6), legend=names(table(dat0_m))) JapanPrefMap(dat15_mcol, main="平成29年都道府県別 15~64歳人口(百万人) ") legend("bottomright", fill=rainbow(length(levels(dat15_m)), alpha=0.6), legend=names(table(dat15_m))) JapanPrefMap(dat65_mcol, main="平成29年都道府県別 65~歳人口(百万人) ") legend("bottomright", fill=rainbow(length(levels(dat65_m)), alpha=0.6), legend=names(table(dat65_m))) windows(width=2000, height=1200) layout(matrix(1:4, 2, 2)) datc_m <- cut(dat$総人口/1000000, hist(dat$総人口/1000000, plot=FALSE)$breaks, right=FALSE) datc_mcol <- rainbow(length(levels(datc_m)), start=0, end=0.9, alpha=0.6)[as.integer(datc_m)] dat0_m <- cut(dat$人口0_14/dat$総人口*100, hist(dat$人口0_14/dat$総人口*100, plot=FALSE)$breaks, right=FALSE) dat0_mcol <- rainbow(length(levels(dat0_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat0_m)] dat15_m <- cut(dat$人口15_64/dat$総人口*100, hist(dat$人口15_64/dat$総人口*100, plot=FALSE)$breaks, right=FALSE) dat15_mcol <- rainbow(length(levels(dat15_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat15_m)] dat65_m <- cut(dat$人口65_/dat$総人口*100, hist(dat$人口65_/dat$総人口*100, plot=FALSE)$breaks, right=FALSE) dat65_mcol <- rainbow(length(levels(dat65_m)), start=0, end=0.9, alpha=0.6)[as.integer(dat65_m)] JapanPrefMap(datc_mcol, main="平成27年都道府県別 総人口(百万人) ") legend("bottomright", fill=rainbow(length(levels(datc_m)), alpha=0.6), legend=names(table(datc_m))) JapanPrefMap(dat0_mcol, main="平成29年都道府県別 総人口当たりの0~14歳人口(%) ") legend("bottomright", fill=rainbow(length(levels(dat0_m)), alpha=0.6), legend=names(table(dat0_m))) JapanPrefMap(dat15_mcol, main="平成29年都道府県別 総人口当たりの15~64歳人口(%) ") legend("bottomright", fill=rainbow(length(levels(dat15_m)), alpha=0.6), legend=names(table(dat15_m))) JapanPrefMap(dat65_mcol, main="平成29年都道府県別 総人口当たりの65~歳人口(%) ") legend("bottomright", fill=rainbow(length(levels(dat65_m)), alpha=0.6), legend=names(table(dat65_m)))
こんな感じになります。地図に表すまでもなく。という結果です。この人口は、今後も様々な場面で使用しますので、そのベースということで。
各年代を総人口で割った各年代の割合を表示させてみます。