在 statnet 中绘制带有 GPS 坐标的网络

Plot network with GPS coordinates in statnet

是否可以使用坐标作为节点布局来绘制网络对象?我不想将它们绘制在地图上,而只是根据它们的 lat/long 位置显示节点之间的物理距离。

数据借自:

library(statnet)
df <- data.frame("from" = c("Bob", "Klaus", "Edith", "Liu"), 
                 "to" = c("Edith", "Edith", "Bob", "Klaus"))

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))

net<-as.network(df)

set.vertex.attribute(net, names(meta), meta)

这比我想象的要琐碎得多!解决方法和igraph中的非常相似

除了上面的代码,下面一行代码将根据坐标绘制网络:

plot(net , coord = meta[,c(2,3)])

这对于距离较远的网络非常有效。如果您的网络节点非常接近,您可能需要指定适当的 xlimylim 参数以获得良好的表示。对于这个例子,它不是必需的,但它看起来像这样(在我的情况下这是必需的)。

plot(net , 
     coord = meta[,c(2,3)], 
     ylim = c(-80,116), 
     xlim = c(39,54)
)