R言語所蔵のサンプルデータをABC順に眺めてます。今回からmapsパッケージ所蔵のサンプルデータに入ります。初回は canada.citiesなるサンプルデータベースです。2006年正月のデータらしいのでRのサンプルにしたらば新しい方?しかしmapsパッケージなのにまさかの事態に遭遇。カナダの地図を描きたいのだけれど?
※「データのお砂場」投稿順Indexはこちら
※使用させていただいている Rのversionは 4.3.1。RStudioは 2024.04.2+764 “Chocolate Cosmos” です。
mapsパッケージ
以前から地図を表示するのにお世話になっている mapsパッケージです。パッケージの解説ページは以下に。
R上で地図を描く方法は複数あるみたいですが、本パッケージを愛用させていただいております。今回からパッケージ内に所蔵のサンプルデータセットを巡っていきたいと思います。
canada.cities
頭文字a、bは不在ということで、cです。カナダの「都市」のデータベースでした。タイトルは以下に。
Database of Canadian cities
合計916の都市の都市名、州名、人口、緯度、経度、そして首都(州都含む)であるか否かを記したデータベースです。しかし流石カナダです。ここに収録されているのは「人口千人以上の都市および人口に関わらず州都」だということです。人口千人、日本じゃ、かなり過疎な町村に感じられますが、茫漠としたカナダの大地を思うとそんなもんかい?まあ、カナダは何度も仕事でいったことある、とか言ってもトロントとバンクーバーだけなんだけれども。どちらも大都会。
先ずは生データ
ライブラリをロードし、サンプルデータセットを開いてみます。こんな感じ。
「都市」のデータベースです。この都市データを地図上にプロットしてやればOKじゃん。しかし、mapsといいつつここには地図データそのものは含まれてません。mapsパッケージに含まれる米国の「白地図」データにかなりお世話になった記憶。カナダもあるのかと思いきや。
カナダの地図はどこ?
見当たりませぬ。どうもmapsの内部には、米国、フランス、ニュージーランドおよび世界地図などは含まれているものの、カナダはなし。なお、日本と中国は別パッケージに入ってました。ネットを調べるとカナダの地図を提供して下すっている方がおられるようでしたが、お惚け老人は
あんまり新たなデータベースを増やしたくない
です。無暗と増やしていくと死ぬまでに舐め終わらなそうな気がしているこのごろです。どうしたものか。
世界地図ならある
世界地図は以下で一撃です。
map('world')
そしてカナダはとても広大な国土なので、世界地図を拡大してもそれなりに「良い感じ」です、お惚け老人の目には。まずは世界地図のカナダのあたりを緯度、経度指定して拡大し、さきほどのデータベースの都市位置をプロットしてみました。こんな感じ。
map('world', xlim=c(-150,-30), ylim=c(40, 85)) points(canada.cities$long, canada.cities$lat, pch = 16, cex = 0.25, col='blue')
そんなこったろう(失礼)とは思いましたが、南の方にヘバリついている感じ。
まあこの中から何か条件で取り出した街を色変してプロットし、その横にお名前を記入してみます。取り出す条件は
人口>100万都市
取り出してプロットする操作が以下に。
largeCities<-canada.cities[canada.cities$pop>1000000,] points(largeCities$long, largeCities$lat, pch = 16, col='red') text(largeCities$long, largeCities$lat+1, labels=largeCities$name, col='red')
バンクーバー、トロント、モントリオールっと。ま、予想通りか。