LoginSignup
2
2

More than 5 years have passed since last update.

choroplethr - Vignettes - c) アメリカの郡単位コロプレス図

Last updated at Posted at 2014-12-08

Rのパッケージchoroplethrのビネットの翻訳です.
( 原文: http://cran.r-project.org/web/packages/choroplethr/index.html )


c) アメリカの郡単位コロプレス図

county_choropleth関数でアメリカの郡単位のコロプレス図を作成することができます.

library(choroplethr)

?df_pop_county
data(df_pop_county)

?county_choropleth
county_choropleth(df_pop_county)

us-county-pop.png

上で示したように,county_choroplethに必須の引数はデータフレームだけです.
オプション引数は?county_choroplethとタイプすれば見ることができます.

データ要件

county_choropleth関数に渡すデータフレームは"region"と"value"という名前の列を持っている必要があります.
"region"列の要素はchoroplethrが使用している地図の地域名と厳密に一致している必要があります.
これらの地域名はcounty.regionsオブジェクトで定義されています.

library(choroplethrMaps)

?county.regions
data(county.regions)
head(county.regions)
##    region county.fips.character county.name state.name
## 1    1001                 01001     autauga    alabama
## 36   1003                 01003     baldwin    alabama
## 55   1005                 01005     barbour    alabama
## 15   1007                 01007        bibb    alabama
## 2    1009                 01009      blount    alabama
## 16   1011                 01011     bullock    alabama
##    state.fips.character state.abb
## 1                    01        AL
## 36                   01        AL
## 55                   01        AL
## 15                   01        AL
## 2                    01        AL
## 16                   01        AL

choroplethrを使用するためには,county.regionsの"region"列の命名規則に従わなければなりません.
つまり,FIPS(連邦情報処理標準)の郡コードの数値(先頭のゼロを省いたもの)を使用する必要があります.

データの探索

county_choropleth 関数にはデータの探索を助ける三つの引数が用意されています.
num_colorsstate_zoomcounty_zoom引数です.
num_colorsの値はデフォルトでは7です.これは7種類の色が使用され,それぞれの色で等しい数の郡が塗り分けられるということです.
num_colorsが1の場合は連続的なカラースケールが使用されます.
state_zoomcounty_zoomはともにデフォルトではNULLであり,全ての郡が表示されます.

州単位のズームの例として,choroplethrでアメリカ西海岸の郡の人口を表示してみましょう.外れ値はロサンゼルス郡です.

county_choropleth(df_pop_county,
                 title      = "2012 Population Estimates",
                 legend     = "Population",
                 num_colors = 1,
                 state_zoom = c("california", "washington", "oregon"))

us-county-pop-zoom.png

郡単位のズームの例として,サンフランシスコ沿岸部の9郡の人口を表示してみましょう.

# FIPS codes for Alameda, Contra Costa, Marin, Napa, San Francisco, San Mateo, Santa Clara, 
# Solano, and Sonoma counties
bay_area_counties = c(6001, 6013, 6041, 6055, 6075, 6081, 6085, 6095, 6097)
county_choropleth(df_pop_county,
                 title       = "2012 Population Estimates",
                 legend      = "Population",
                 num_colors  = 1,
                 county_zoom = bay_area_counties)

us-county-pop-zoom2.png

高度なオプション

上で例示したオプション引数によるカスタマイズ以上のことがしたい場合は,
CountyChoroplethオブジェクトを作成する必要があります.
choroplethrはオブジェクト指向プログラミングを活用するためにR6を使っています.
以下の例ではパレットをカスタマイズするためにChoropleth基底オブジェクトを
ggplot2_scaleを使って拡張しています.

library(ggplot2)

choro = CountyChoropleth$new(df_pop_county)
choro$title = "2012 Population Estimates"
choro$ggplot_scale = scale_fill_brewer(name="Population", palette=2)
choro$render()

us-county-pop-green.png

注意: CountyChoroplethオブジェクトに手動でスケールを設定するときは注意が必要です.特に,choroplethrではアラスカとハワイを地図に差し込むためにggplot2のカスタムアノテーションを使用しているので,以下の手順に従わないと地図の主要部分と差し込み部分のスケールが一致しません.

  1. 離散的なスケールの場合は,上の例のようにdrop=FALSE引数をスケールの関数に渡してください.

  2. 連続的なスケールの場合は,データセット全体の最小値と最大値を含んだlimits引数を渡してください.

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2