Choggpleth在地图上用ggplot2 R绘制多边形

时间:2018-10-24 05:48:05

标签: r ggplot2 gis ggmap

我意识到这个问题之前已经被问过100次了,但是到目前为止,我所读到的所有答案似乎都不适合我的问题。

我有数据。我有纬度和经度值。我已经阅读了有关sp的内容,并在数据框中制作了一堆形状对象。我已将此数据框与我要映射的变量匹配。

我无法终生弄清楚如何ggplot2来绘制多边形。有时,它需要显式的x,y值(无论如何都是形状的一部分,因此看起来很多余),或者需要一些我实际上没有的外部形状文件。没有用荧光笔着色,我很茫然。

如果我带一个单独的sps对象(在导入,清理和整理大量数据之后使用以下函数构建)

createShape = function(sub){
  #This funciton takes the list of lat/lng values and returns a SHAPE which should be plottable on ggmap/ggplot
  tempData = as.data.frame(do.call(rbind, as.list(VICshapes[which(VICshapes$Suburb==sub),] %>% select(coords))[[1]][[1]]))
  names(tempData) = c('lat', 'lng')
  p = Polygon(tempData)
  ps = Polygons(list(p),1)
  sps = SpatialPolygons(list(ps))
  return(sps)
}

这些形状然后与我的数据存储在相同的数据框中-仅由于某种原因,今天下午我什至无法查看,因为尝试查看会产生以下错误。

head(plotdata)
Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  : first argument must be atomic

我意识到我现在对此感到非常恼火,但是我大约有70%的成绩都以此为生,而我的大学没有人能够提供帮助。

我在这里粘贴了前几行数据-https://pastebin.com/vFqy5m5U-显然您无法使用s4对象(我要绘制的形状文件)打印数据。

无论如何。我正在尝试将每个形状绘制到地图上。多边形需要x,y值。我没有其他任何形状的文件。我根据大量的lat和long值以及上面的代码块创建了它们。我在这里真的很茫然,甚至都不知道要问什么问题。我有基于位置的兴趣变量,以及每个位置的形状。我想念什么?

编辑:I've pasted the summary data (BEFORE making them into shapes) here. It's a massive list of lat/lng values for EACH tile/area, so it's pretty big...

1 个答案:

答案 0 :(得分:0)

已在gis.stackexchange.com上回答(未提供链接)。