3

ggplot2にgeom_mapがあるので、データをコロプレスにマッピングする古い方法から移行しようとしています。例は10-11ページ(ここ)に見られます。

ggplotの新しいgeom_mapだけでなく、過去にコロプレスを作成したデータセットを使用してこれを実行しようとしています。これがHadelyの例のようだと思うが、すべて同じ色だと思う私の試みです。

データセットとコード:

#loads 2 data frames: ny and cad from my drop box
load(url("http://dl.dropbox.com/u/61803503/MAPPING.RData"))
library(ggplot2)

ggplot(cad, aes(map_id = subregion)) +
    geom_map(aes(fill = Math_Pass_Rate), map = ny) +
    expand_limits(x = ny$long, y = ny$lat) +
    guides(fill = guide_colorbar(colours = topo.colors(10))) +
    opts(legend.position = "top")

なぜ同じ色で表示されるのですか?


@PaulHiemstraからの追加情報

少し戸惑いましたが、良い結果が得られませんでした。ただし、リンク先のggplot2pdfの例が機能する理由も疑問に思います。

このコードは、正しいコロプレスマップを生成します。

crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
ggplot(crimes, aes(map_id = state)) +
   geom_map(aes(fill = Murder), map = states_map) +
   expand_limits(x = states_map$long, y = states_map$lat) +
   guides(fill = guide_colorbar(colours = topo.colors(10))) +
   opts(legend.position = "top")

を使用すると、 (ポリゴン)の列と( )の列map_id = stateの間にリンクが作成されることが期待されます。列が含まれています:states_mapcrimesMurdercrimesstate

> head(crimes)
                state Murder Assault UrbanPop Rape
Alabama       alabama   13.2     236       58 21.2
Alaska         alaska   10.0     263       48 44.5
Arizona       arizona    8.1     294       80 31.0
Arkansas     arkansas    8.8     190       50 19.5
California california    9.0     276       91 40.6
Colorado     colorado    7.9     204       78 38.7

しかし、states_mapしません:

> head(states_map)
       long      lat group order  region subregion
1 -87.46201 30.38968     1     1 alabama      <NA>
2 -87.48493 30.37249     1     2 alabama      <NA>
3 -87.52503 30.37249     1     3 alabama      <NA>
4 -87.53076 30.33239     1     4 alabama      <NA>
5 -87.57087 30.32665     1     5 alabama      <NA>
6 -87.58806 30.32665     1     6 alabama      <NA>

したがって、ポリゴンとデータの間のリンクでは、いくつかの黒魔術が起こっているようです。これはまた、@TylerRinkerが抱えている問題を説明するかもしれません。

4

1 に答える 1

5

これは、の文書化された動作ですgeom_mapgeom_map常にからregion変数(または代わりにid)を描画しますstates_map。これは以下によって確認されます。ランニング:

ny$region = ny$subregion

subregion名前を列に入れregionます。ここで、プロットすると正しい画像が表示されます。

ここに画像の説明を入力してください

したがって、またはをgeom_map使用します。regionid

于 2012-04-19T08:09:29.300 に答える