在 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)])
这对于距离较远的网络非常有效。如果您的网络节点非常接近,您可能需要指定适当的 xlim
和 ylim
参数以获得良好的表示。对于这个例子,它不是必需的,但它看起来像这样(在我的情况下这是必需的)。
plot(net ,
coord = meta[,c(2,3)],
ylim = c(-80,116),
xlim = c(39,54)
)
是否可以使用坐标作为节点布局来绘制网络对象?我不想将它们绘制在地图上,而只是根据它们的 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)])
这对于距离较远的网络非常有效。如果您的网络节点非常接近,您可能需要指定适当的 xlim
和 ylim
参数以获得良好的表示。对于这个例子,它不是必需的,但它看起来像这样(在我的情况下这是必需的)。
plot(net ,
coord = meta[,c(2,3)],
ylim = c(-80,116),
xlim = c(39,54)
)