在R中的ggmap中映射分类变量

时间:2018-08-10 11:56:25

标签: r ggplot2 ggmap

有此数据

Zip    incidentType        city state latitude longitude
1 00660           Flood Hormigueros    PR 18.13911 -67.12085
2 00660 Severe Storm(s) Hormigueros    PR 18.13911 -67.12085
3 00660 Severe Storm(s) Hormigueros    PR 18.13911 -67.12085
4 00660           Flood Hormigueros    PR 18.13911 -67.12085
5 00660           Flood Hormigueros    PR 18.13911 -67.12085
6 01255           Flood Sandisfield    MA 42.08897 -73.12444

并且我想绘制一个热图来绘制入射变量,该变量是以下代码中各个级别的一个因素

library(ggmap)

map <- get_map(location = "United States",zoom = 4,maptype = "terrain",
               color = "color",source = "google")

ggmap(map,extent = "device") + geom_point(aes(x=latitude,y=longitude,
                         alpha=0.7,fill=incidentType,
                        col=incidentType),fun=sum,
                        data = dat1,na.rm = TRUE)

但是这些点未绘制在地图上。 请帮忙。

1 个答案:

答案 0 :(得分:0)

存在多个问题。

  1. zoom = 4太小。请使用zoom = 3
  2. longitude应该映射到xlatitude应该映射到y
  3. 最好在ggplot参数中指定base_layer调用。
  4. 不确定fun = sum在这里是什么意思。
  5. 不确定为什么alpha = 0.7aes中的参数。

这是固定代码。

dat <- read.table(text = "Zip    incidentType        city state latitude longitude
1 00660           Flood Hormigueros    PR 18.13911 -67.12085
2 00660 'Severe Storm(s)' Hormigueros    PR 18.13911 -67.12085
3 00660 'Severe Storm(s)' Hormigueros    PR 18.13911 -67.12085
4 00660           Flood Hormigueros    PR 18.13911 -67.12085
5 00660           Flood Hormigueros    PR 18.13911 -67.12085
6 01255           Flood Sandisfield    MA 42.08897 -73.12444",
                  header = TRUE, stringsAsFactors = FALSE)

library(ggmap)

map <- get_map(location = "United States",zoom = 3,maptype = "terrain",
               color = "color",source = "google")

ggmap(map, 
      base_layer = ggplot(data = dat, aes(x = longitude, y = latitude))) + 
  geom_point(aes(fill = incidentType, col = incidentType), alpha = 0.7, size = 2)

这是情节。

enter image description here