2014-09-28 65 views
2

我正在尝试使用节点的坐标创建igraph图形。我意识到没有直接的方法通过用于R的igraph程序包来完成此操作。使用节点的XY坐标设置(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... 

P.S.这是我在StackOverflow上的第一篇文章。关于如何更好地提出问题的任何建设性反馈也是受欢迎的。

+0

我不明白你在做什么。图结构完全独立于绘制的xy坐标。如果要控制渲染节点的位置,可以使用'plot.igraph()'中的'layout ='参数(请参阅'?igraph :: layout')。 xy坐标不告诉你连接哪个节点。请阅读[如何创建可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),并包括示例输入和期望的输出。 (如果你打算使用runif,也可以使用'set.seed()',这样我们可以得到相同的值)。 – MrFlick 2014-09-28 17:18:23

回答

1

阅读您的问题当场打死多次后,我猜测,这样的事情会工作

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对象之前查找连接,因为您已经知道位置。

+0

谢谢MrFlick,我喜欢在创建图表之前计算连接的想法。我会尽快发布我的代码的简化版本。 – Hitaysh 2014-09-29 03:12:07