【R】コロプレス図のアニメーション
1.はじめに
総務省統計局が発表している「都道府県・市区町村のすがた(社会・人口統計体系)」に様々なデータがあります。都道府県別のデータのみならず、年次ごとのデータもあります。ここでは、コロプレス図を年によってどのように変化するかをアニメーションで表示する方法を示します。
2.データの準備
「都道府県・市区町村のすがた(社会・人口統計体系)」のページから(●)都道府県データ>データ表示を選択します。
地域の選択画面になりますので、[2]地域候補で”00000_全国”以外を選択して[地域を選択]ボタンを押します。地域候補が「00000_全国」のみとなり、選択中地域が47地域となっていることを確認して、[確定]ボタンを押します。
表示項目選択の画面になります。データ化したい情報を選択します。例えば、C3102 農家数(戸)を選択したとします。項目を選択>確定とするとデータが表示されます。
画面右上の[ダウンロード]ボタンを押します。何度かダイアログが出ますがすべて[ダウンロード]ボタンを押し続けます。任意の場所にデータをダウンロードします。
ダウンロードしたデータは処理に不都合なので、少しだけ処理します。データはCSV形式になっていますのでExcelなどで開いて1~8行目を削除します。また、数値のコロン( , )を削除しておいてください。文字化け等の問題を考慮して適切なエンコード(UTF-8, CP392など)で保存してください。
3.コード
アニメーションはアニメーションgifにて実現します。そのために、Rのanimationパッケージをインストールします。
また、このパッケージはImageMagickを使用するので、このソフトウエアもインストールします。このImageMagickはいろいろ癖があるようで、こちらのサイトに詳しく載っています。
library(animation) library(NipponMap) dat <- read.csv("<<データファイル名>>", header = FALSE, fileEncoding="UTF-8") dat <- dat[-1,] # 不要な1行目を削除 f_year<-table(dat$V2) df_year<-data.frame(f_year) df <- data.frame(Pref=dat$V4[1:47]) for (i in 1:length(f_year)){ year_val<-dat[dat$V2==df_year$Var1[i],6] df<-cbind(df, year_val) } col_name<-as.character(df_year$Var1[-length(f_year)]) colnames(df)<-c("Pref", col_name) col_start <- 0.2 col_end <- 0.0 ani.options(outdir=getwd(), convert = '<<ImageMagickインストールフォルダ>>/convert.exe') replot <- function(n){ for(i in c(2:n)){ df[,i]<-as.numeric(as.character(df[,i])) datc_k <- cut(df[,i], hist(df[,i], plot=FALSE)$breaks, right=FALSE) datc_kcol <- rainbow(length(levels(datc_k)), start = col_start, end=col_end)[as.integer(datc_k)] par(mar=c(0,0,2,0)) JapanPrefMap(datc_kcol, main=col_name[i+1]) legend("bottomright", fill=rainbow(length(levels(datc_k)), start = col_start, end=col_end), legend=names(table(datc_k))) } } saveGIF({replot(length(f_year)-2)}, clean=TRUE, img.name="output", movie.name="output.gif")
Rにてsetwd(“<<設定したいフォルダ>>”)コマンドでワーキングディレクトリを指定します。そこに、データファイルも入れておきます。
コードの中でread.csv関数でデータファイル名とエンコードを指定します。また、ani.options()関数でImageMagickをインストールしたフォルダ(convert.exeの場所)をしていします。
4.実行結果
コードの実行が成功すると、output.gifというファイル名でアニメーションgifが生成されます。
下記は、このデータを使って表示した農家数の移り変わりです。
5.おわりに
このように、年ごとの変化をみると新しい発見がありますね。
アニメーションに関しては、こちらのサイトとこちらのサイトとこちらのSlideShareを参考にさせていただきました。また、日本地図に関しては、こちらのサイトを参考にさせていただきました。