データのお砂場(180) R言語、us.cities、map.cities使用 {maps}

Joseph Halfmoon

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

上記の関数についての解説が以下に。

Add Cities to Existing Map

今回は、上記の関数を使い、us.citiesデータベースを用いて米国内の州対象にプロットしてみます。us.citiesの解説は以下に。

https://search.r-project.org/CRAN/refmans/maps/html/map.cities.html

先ずは生データ

まずはmapsパッケージのus.citiesデータセットのロードとその中身の確認から。
usCitiesRawData
都市名、州略記号、人口、緯度、経度、首都(国は1、州などの首都は2、その他のものは3)という構成のデータフレームです。都市名に必ず州の略記号も付加されているのは、アリガチな同名の都市が異なる州に存在するからかと思います。

maps.citiesを使ってみる

まずは処理例にそって、一番シンプルなプロット

map("state", "New Jersey")
map.cities(us.cities, country="NJ")
title("New Jersey")

上記の結果が以下にNewJersey0

右上のところに都市が集まってますが、その対岸には大都市ニューヨークがある筈。

都市名を書きこむ場合は、以下のように指定すれば可能です。

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")

するとこんな感じ。NewJersey2

なんだ一気に少なくなったな。

州都をプロットするときはこんな感じ。

map("state", "New Jersey")
map.cities(us.cities, country="NJ", label=TRUE, capitals=2)
title("New Jersey, w/state capital")

結果が以下に。NewJersey3

アメリカらしいな。州都は結構小さめの街にあるのね。

データのお砂場(179) R言語、unemp、米国の郡別失業率 {maps} へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です