ggplot2にgeom_mapが追加されたので、以前のマッピング方法からchoroplethに移行しようとしています。一例が10-11頁(HERE)に見られる。geom_mapすべての部分領域が同じ色
私はデータセットでこれを実行しようとしています。過去のgorplotの新しいgeom_mapではなく、choroplethを作成しました。私の考えは、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
から
追加情報私はそれに少し不可解てきたが、良い結果を得ることができませんでした。しかし、私はまたあなたがリンクしているggplot2 pdfの例がなぜ機能するのだろうと思います。
このコードは、正しいchoroplethマップを生成します。
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")
一つは、リンクがstates_map
の列(ポリゴン)とcrimes
の列(Murder
)との間で行われたこと、map_id = state
を使用していることが予想されます。 crimes
がstate
列が含まれます。
> 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の持つ問題点についても説明しています。
+1、Dropboxの面白い使い方。 –
質問にもう少し奇妙な振る舞いを加えました。私はこの例がなぜ機能するのか理解できませんでした。 –
@PaulHiemstra興味深い面白いところがあります:私は 'x < - readRDS(" foo.rds ")'を同じように動作させるようには思えませんでした。一般的に、あなたがオブジェクト名を指示するので、readRDS'。 –