2010-10-17 61 views
4

我创建了美国各州之间流量数据的网络图。对于每个顶点,我有状态的纬度/经度。网络图和美国地图在R

我希望重新创建一个网络类型的图表,显示边缘,除了我设置每个顶点的位置是他们的地理位置,并在背景中有一个状态边界地图。

我正在使用igraph创建我的网络。 ggplot2中有一些很酷的映射例子,所以我想知道这是否是一个选项。我相信我已经使用Pajek看到类似的选项,但我希望留在R

maps in ggplot2

任何想法/洞察力,将不胜感激。

  • 布洛克

回答

7

你必须处理映射多个包。最容易的是maps,它给你的国家地图。您可以使用坐标来绘制顶点。

map("state") 
points(longitute,latitude) 

这些图可以使用基本工具进行操纵和添加,请记住x轴是经度,y轴是纬度。可以使用segments()函数绘制边缘。

在ggplot2中,只需使用map_data()函数,该函数为您提供地图的形状数据,然后使用geom_polygon()以任何形式将其添加到图形中。再次,您可以使用相应的ggplot2函数geom_point()geom_segment()使用坐标添加顶点和边。您链接的代码会告诉您如何或以其他方式查看this的示例。

接下来,您可以看看提供更多功能的包maptools和允许对同一地图进行不同投影的mapproj。您也可以使用这些包来计算坐标系中的地理距离。

mapdata包含更多的数据库,基本覆盖了整个世界。你可以很好地处理坐标。