3

由于 ggplot2 具有 geom_map,我正在尝试从旧的映射数据方式转移到等值线。示例见第 10-11 页(此处)。

我正在尝试使用我过去创建的 choropleth 的数据集来执行此操作,而不是使用 ggplot 的新 geom_map。这是我的尝试,我认为它就像哈德利的例子,但一切都是相同的颜色。

数据集和代码:

#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 中的示例有效。

此代码生成正确的等值线图。

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_map. geom_map总是从. region_ 这由以下证实。跑步:idstates_map

ny$region = ny$subregion

subregion名称放入region列中。现在绘图导致正确的图像:

在此处输入图像描述

因此,geom_map使用regionor id

于 2012-04-19T08:09:29.300 回答