
R言語付属のサンプルデータベースをABC順に巡回中。今回は mapsパッケージのus.citiesです。米国の都市のデータベース。これに似たデータベース canada.citiesを過去回でやってますが、迂闊なことにナンチャラ.cities向けの専用関数の存在に気づいてなかったデス。今回は専用関数でプロットしてみます。
※「データのお砂場」投稿順Indexはこちら
※使用させていただいている Rのversionは 4.3.1。RStudioは 2024.04.2+764 “Chocolate Cosmos” です。
ナンチャラ.citiesとmap.cities
「国名.cities」という御名前のデータベースが複数あるようです。以下の過去回にて canada.cites というデータベースを扱ってます。
データのお砂場(168) R言語、canada.cities、カナダの街、{maps}
上記回では「通常の関数」をつかってカナダの地図上に都市をプロットしてました。しかし、調べてみるとこの形式のデータベース「専用の」以下関数が存在することに気づきました。
map.cities
上記の関数についての解説が以下に。
今回は、上記の関数を使い、us.citiesデータベースを用いて米国内の州対象にプロットしてみます。us.citiesの解説は以下に。
https://search.r-project.org/CRAN/refmans/maps/html/map.cities.html
先ずは生データ
まずはmapsパッケージのus.citiesデータセットのロードとその中身の確認から。
都市名、州略記号、人口、緯度、経度、首都(国は1、州などの首都は2、その他のものは3)という構成のデータフレームです。都市名に必ず州の略記号も付加されているのは、アリガチな同名の都市が異なる州に存在するからかと思います。
maps.citiesを使ってみる
まずは処理例にそって、一番シンプルなプロット
map("state", "New Jersey") map.cities(us.cities, country="NJ") title("New Jersey")
右上のところに都市が集まってますが、その対岸には大都市ニューヨークがある筈。
都市名を書きこむ場合は、以下のように指定すれば可能です。
map("state", "New Jersey") map.cities(us.cities, country="NJ", label=TRUE) title("New Jersey, w/city names")
上のプロットはちょっとごちゃごちゃしすぎなので、人口10万以上としてみました。
map("state", "New Jersey") map.cities(us.cities, country="NJ", label=TRUE, minpop=100000) title("New Jersey, w/pop>=100,000 cities")
なんだ一気に少なくなったな。
州都をプロットするときはこんな感じ。
map("state", "New Jersey") map.cities(us.cities, country="NJ", label=TRUE, capitals=2) title("New Jersey, w/state capital")
アメリカらしいな。州都は結構小さめの街にあるのね。