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

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

* a) [イントロダクション](http://qiita.com/nakamichi/items/23730349f31a377fb071)
* b) [アメリカの州単位コロプレス図](http://qiita.com/nakamichi/items/b8267674b610ef6e1cab)
* c) [アメリカの郡単位コロプレス図](http://qiita.com/nakamichi/items/2f63dcfb7b1cc407d87c)
* d) [アメリカの郵便番号に基づく地図](http://qiita.com/nakamichi/items/889d3883e9b2ff8e2cdf)
* e) [国家単位のコロプレス図](http://qiita.com/nakamichi/items/5090b4dadeed42c2e13c)
* f) [国勢調査の地図](http://qiita.com/nakamichi/items/de929da9335f96f6468c)
* g) [世界銀行データの地図](http://qiita.com/nakamichi/items/66fa782bb3104dd815bf)
* h) [コロプレス図の動画](http://qiita.com/nakamichi/items/02ca0f678933405cf18f)
* i) [自分の地図を作る](http://qiita.com/nakamichi/items/99ff93769f4f67b97d18)
* j) [行政区画レベル1の地図を作る](http://qiita.com/nakamichi/items/8fde40a12c6aca2abbd3)

----------

# b) アメリカの州単位コロプレス図 #

`state_choropleth`関数によってアメリカの州単位のコロプレス図を作成することができます．

```{r}
library(choroplethr)

?df_pop_state
data(df_pop_state)

?state_choropleth
state_choropleth(df_pop_state)
```

![us-pop-2012.png](https://qiita-image-store.s3.amazonaws.com/0/58917/d8b3cf5a-3165-3c33-6a75-f1755110f128.png)

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


## データ要件 ##

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

```{r}
library(choroplethrMaps)

?state.regions
data(state.regions)
head(state.regions)
```

```{r}
##       region abb fips.numeric fips.character
## 1     alaska  AK            2             02
## 2    alabama  AL            1             01
## 3   arkansas  AR            5             05
## 4    arizona  AZ            4             04
## 5 california  CA            6             06
## 6   colorado  CO            8             08
```

`choroplethr`を使用するためには，`state.regions`の"region"列の命名規則に従わなければなりません．


## データの探索 ##

`state_choropleth` 関数にはデータの探索を助ける二つの引数が用意されています．
`num_colors`と`zoom`引数です．
`num_colors`の値はデフォルトでは7です．これは7種類の色が使用され，それぞれの色で等しい数の州が塗り分けられるということです．
`num_colors`が1の場合は連続的なカラースケールが使用されます．
`zoom`はデフォルトでは`NULL`であり，全ての州が表示されます．
`zoom`には有効な地域名のベクトルを指定することができます．

例として，`choroplethr`でアメリカ西海岸の州の人口を表示してみましょう．

```{r}
state_choropleth(df_pop_state,
                 title      = "2012 Population Estimates",
                 legend     = "Population",
                 num_colors = 1,
                 zoom       = c("california", "washington", "oregon"))
```

![us-pop-2012-zoom.png](https://qiita-image-store.s3.amazonaws.com/0/58917/fada5164-42e7-f782-8aea-bc79c4a8fb51.png)


## 高度なオプション ##

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


このデータセットは2012年のアメリカ大統領選挙のものです．
通常は，この地図では民主党支持の州は青で，共和党支持の州は赤で表示されます．

```{r}
library(ggplot2)

?df_president 
data(df_president)

choro = StateChoropleth$new(df_president)
choro$title = "2012 Election Results"
choro$ggplot_scale = scale_fill_manual(name="Candidate", values=c("blue", "red"))
choro$render()
```
![us-election-2012.png](https://qiita-image-store.s3.amazonaws.com/0/58917/c391f6ad-74fd-1919-ec35-1e59ad9a813b.png)

州名のラベルを取り除く等の，`StateChoropleth`の他のオプションについては，`choroplethr`の[ソースコード](https://github.com/arilamstein/choroplethr)を参照してください．

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

1. 離散的なスケールの場合は，上の例のように`drop=FALSE`引数をスケールの関数に渡してください．
2. 連続的なスケールの場合は，データセット全体の最小値と最大値を含んだ`limits`引数を渡してください．