2010-10-17 92 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包含更多的數據庫,基本覆蓋了整個世界。你可以很好地處理座標。