在MAP中显示一次所有纬度和经度

时间:2016-08-26 07:16:03

标签: r google-maps

我有一个像

这样的数据集
latitude    longitude   Class   prediction
9.7          21.757     244732     1
12.21        36.736     112206     0
-15.966      126.844    133969     1

现在我想在预测列中对所有'1'进行分组并获取它们的纬度和经度,之后我想在一张地图上显示所有点。

实际上我编写的代码在预测列上取每个'1'并分别取lat和long,每次在地图上显示一个点。但是我想收集预测为1的所有纬度和长度并在一张地图上显示所有点。

library(ggplot2)
library(ggmap) #install.packages("ggmap")

#data set name testData1
for (i in  1:100){

  if (testData1$prediction[i]==1) {

    lat <- testData1$latitude[i]
    lon <- testData1$longitude[i]
    df <- as.data.frame(cbind(lon,lat))

    # getting the map
    mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)), zoom = 4,
                          maptype = "satellite", scale = 2)

    # plotting the map with some points on it
    ggmap(mapgilbert) +
      geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) +
      guides(fill=FALSE, alpha=FALSE, size=FALSE)

  }

}

1 个答案:

答案 0 :(得分:2)

我认为你过于复杂。您可以像这样简单地对df进行分组:

ggmap(mapgilbert) +
  geom_point(data = subset(df, prediction == 1), aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) +
  guides(fill = FALSE, alpha = FALSE, size = FALSE)