【问题标题】:Plot network with GPS coordinates in statnet在 statnet 中绘制带有 GPS 坐标的网络
【发布时间】:2020-07-08 08:16:46
【问题描述】:

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

数据借自:Using geo-coordinates as vertex coordinates in the igraph r-package

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)

【问题讨论】:

  • 是的,请按照您引用的问题中的解决方案进行操作。为避免绘制地图,请删除对 Cario 包和函数的引用。您可能需要调整“dpi”变量的值、绘图颜色,并调整 x 和 y 限制。
  • 感谢您的建议,但不幸的是,解决方案适用于 igraph。不过,我确实设法用 statnet 做了一些非常相似的事情。我很感激!

标签: r statnet


【解决方案1】:

这比我想象的要简单得多!该解决方案与 igraph 中的解决方案非常相似。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    相关资源
    最近更新 更多