我根据美国各州之间的流量数据创建了一个网络图。对于每个顶点,我有状态的纬度/经度。
我希望重新创建一种显示边缘的网络图形,除了我将每个顶点的位置设置为它们的地理位置并在背景中有一个状态边界图。
我正在使用igraph来创建我的网络。在ggplot2中有一些很酷的映射示例,所以我想知道这是否是一个选项。我相信我已经看到使用Pajek的类似选项,但我希望留在R。
任何想法/见解都会受到赞赏。
答案 0 :(得分:8)
你有多个处理地图的包。最简单的是maps
,它为您提供州地图。您可以使用坐标绘制顶点。
map("state")
points(longitute,latitude)
这些图可以使用基础工具进行操作和添加,请记住x轴是经度,y轴是纬度。可以使用segments()
函数绘制边。
在ggplot2中,只需使用map_data()
函数,它可以为您提供地图的形状数据,并使用geom_polygon()
以您想要的任何形式将其添加到图表中。同样,您可以使用具有相应ggplot2函数geom_point()
和geom_segment()
的坐标添加顶点和边。您链接的代码会向您显示如何或以其他方式查看this示例。
接下来,您可以查看提供更多功能的包maptools
和mapproj
,它允许对同一地图进行不同的投影。您也可以使用这些包来计算坐标系中的地理距离。
mapdata
包含更多数据库,基本涵盖整个世界。你可以非常好地使用坐标。