如何绘制链网络地图

时间:2017-12-06 05:28:59

标签: r ggplot2 ggmap

我想要一个中央仓库 - 客户供应链网络。我试图用连线划分394个城市。但是我收到了一条错误消息。我使用以下代码。 请注意,我的数据框包含城市的纬度和经度。原点是同一个地方,而目的地每一行都会改变。

map <-get_map(location='united states', zoom=4, maptype = "satellite",
             source='google',color='color')
p <- ggmap(map)

    for(i in 2:nrow(x))

    {
      plot_data <-as.data.frame(rbind(c(unique(x$Origin),as.numeric(unique(x$LAT.x)),as.numeric(unique(x$LONG.x))),
                                       c(x$Destination[i],x$LAT.y[i],x$LONG.y[i])))

      colnames(plot_data) <- c("Place","Lat","Long")
      plot_data$Lat <- as.numeric(as.character(plot_data$Lat))
      plot_data$Long <- as.numeric(as.character(plot_data$Long))

      p <- p + geom_point(data=plot_data, aes(x=Long, y=Lat),color="blue",size=3)
      p <- p + geom_path(data=plot_data, aes(x=Long, y=Lat), color="red", size=1)

      }

1 个答案:

答案 0 :(得分:1)

我做了一个演示,展示了我通常如何处理这种任务。我从地图包中借了一个数据集。世界城市有长/纬信息。我将一些数据集中在美国。我在这个对象中添加了两列。一个是长的,另一个是lat的起点。在这种情况下,我随机选择了丹佛。我用大圆圈来划分丹佛和目的地城市之间的界线。然后,我将数据转换为data.frame,以便ggplot可以使用criteria.add(Restrictions.eq("lCode", lCode)) .add(Restrictions.eq("sCode", sCode)); ProjectionList projList = Projections.projectionList(); projList.add(Projections.property("availablity").as("availablity")); projList.add(Projections.property("quality").as("quality")); 绘制地图。

fortify()

enter image description here