是否可以使用坐标作为节点布局来绘制网络对象?我不想在地图上绘制它们,只是想根据它们的纬度/经度位置显示节点之间的物理距离。
数据借用自:在igraph r包中使用地理坐标作为顶点坐标
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)])
这对于具有大距离的网络相当有效。如果网络的节点非常接近,则可能需要指定适当的xlim
和ylim
参数以获得良好的表示。对于这个例子,这是不必要的,但这就是它的样子(在我的情况下是必要的(。
plot(net ,
coord = meta[,c(2,3)],
ylim = c(-80,116),
xlim = c(39,54)
)