Tyl*_*ker 3 r ggplot2 choropleth
由于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")
Run Code Online (Sandbox Code Playgroud)
为什么它显示为相同的颜色?
来自@PaulHiemstra的更多信息
我对它感到困惑,但无法取得好成绩.但是,我也想知道为什么你链接到的ggplot2 pdf的例子有效.
此代码生成正确的等值区域图.
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")
Run Code Online (Sandbox Code Playgroud)
人们可以期望通过使用map_id = state,在states_map(多边形)中的列和crimes(Murder)中的列之间建立链接.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
Run Code Online (Sandbox Code Playgroud)
但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>
Run Code Online (Sandbox Code Playgroud)
因此,在多边形和数据之间的联系中,似乎正在发生一些黑魔法.这也可以解释@TylerRinker的问题.
这是记录在案的行为geom_map.geom_map总是从中绘制region变量(或者id)states_map.以下证实了这一点.运行:
ny$region = ny$subregion
Run Code Online (Sandbox Code Playgroud)
将subregion名称放入region列中.现在绘制导致正确的图像:

所以,geom_map使用region或id.
| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |