使用XY坐标设置(igraph)图形的节点

3
我正在尝试使用节点的坐标创建igraph图。我意识到在R的igraph包中没有直接的方法来实现这一点。
虽然可以使用“layout()”函数在2D空间中绘制图形,但我需要根据已知节点坐标创建图形。如果有人能够提供任何帮助,我将不胜感激。
为什么我要以这种方式设置图形?在将图形节点进行参数化后,我想使用考虑节点之间距离的概率度量来连接节点。
谢谢。 Hitaysh
    # Initial Co-ordinates of nodes
    n = 1000 # no. of nodes
    nodes.coord <- data.frame(x=runif(n,min=0,max=n),
                              y=runif(n,min=0,max=n))

    # Set up a graph with nodes on above co-ordinates...

顺便说一下,这是我在StackOverflow上的第一篇帖子。欢迎任何有建设性的反馈意见,帮助我更好地提问。


我不明白你想做什么。图形结构完全独立于绘制的xy坐标。如果您想控制节点呈现的位置,可以在plot.igraph()中使用layout=参数(请参见?igraph::layout)。 xy坐标对于哪些节点连接在一起并没有任何作用。请阅读如何创建可重复的示例,并包括样本输入和期望输出。(如果您要使用runif,请使用set.seed(),以便我们可以获得相同的值)。 - MrFlick
1个回答

2

阅读了您的问题多次后,我猜想这样做可能会奏效。

n = 20 # no. of nodes
set.seed(15)
nodes.coord <- data.frame(
    x=runif(n,min=0,max=n),
    y=runif(n,min=0,max=n)
)
gg <- graph.empty(n)
plot(gg, layout=as.matrix(nodes.coord[,c("x","y")]))

enter image description here

如果您要基于距离连接节点,最好在创建igraph对象之前找到这些连接,因为您已经知道它们的位置。


谢谢MrFlick,我喜欢在创建图形之前计算连接的想法。一旦我让它正常工作,我会在这里发布我的代码的简化版本。 - Hitaysh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接