小编wil*_*emr的帖子

使用地理坐标作为igraph r-package中的顶点坐标

在R的igraph包中,我正在努力使用纬度/经度坐标作为图形的布局来绘制社交网络.

想象一下这个简单的例子:一个有4个节点的网络,你知道它们的地理位置和连接:

df<-data.frame("from" = c("Bob", "Klaus", "Edith", "Liu"), "to"= c("Edith", "Edith", "Bob", "Klaus"))
Run Code Online (Sandbox Code Playgroud)

在这里你有节点的元数据,所以鲍勃住在纽约,柏林的克劳斯,巴黎的伊迪丝和北京的刘:

meta <- data.frame("name"=c("Bob", "Klaus", "Edith", "Liu"), "lon"=c(-74.00714, 13.37699, 2.34120, 116.40708),  "lat"=c(40.71455, 52.51607, 48.85693, 39.90469))
Run Code Online (Sandbox Code Playgroud)

我们把g作为igraph对象......

g <- graph.data.frame(df, directed=T, vertices=meta)
Run Code Online (Sandbox Code Playgroud)

...我们将布局定义为经度/纬度坐标

lo <- layout.norm(as.matrix(meta[,2:3]))
plot.igraph(g, layout=lo)
Run Code Online (Sandbox Code Playgroud)

如果您使用这些(真实)地理坐标运行此示例,您将看到它相对于彼此正确的意义上的"相对"准确.但是,如果我绘制这样的坐标很多,那么世界笛卡尔地图看起来"伸展开来".

有没有办法可以在世界地图上绘制我的节点,以便坐标100%正确,我可以看到节点之间的连接?我真的想继续使用igraph包,因为当我想分析节点之间的链接时,它提供了我以后可能需要的许多功能.

r geolocation igraph network-analysis

7
推荐指数
1
解决办法
5826
查看次数

标签 统计

geolocation ×1

igraph ×1

network-analysis ×1

r ×1