【R】都道府県別 人口を日本地図に表示

総務省統計局ホームページに発表されている平成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)))

こんな感じになります。地図に表すまでもなく。という結果です。この人口は、今後も様々な場面で使用しますので、そのベースということで。

各年代を総人口で割った各年代の割合を表示させてみます。

Add a Comment

メールアドレスが公開されることはありません。