图形工具中的顶点坐标

时间:2016-06-26 21:08:59

标签: python performance pandas graph graph-tool

我想以有效的方式在图形工具中指定图形顶点的坐标。

鉴于csv看起来像:

Node,X,Y

1,2.5,3.8

2,3.4,2.9

...

我想用图形工具在位置(2.5,3.8)等处绘制顶点1 ......

在以下方面给出了一种非有效的解决方案: Explicit vertex position in python graph-tool,所以我基本上可以在我的所有坐标上使用for循环,并将它们保存在属性贴图'pos'中。如果我的图表是'g'并且在数据框'坐标'中使用pandas读取了我的csv,我可以这样做:

for i in range(1,numnodes+1):
    pos[g.vertex(i)] = (coordinates.values[i-1,1],coordinates.values[i-1,2]) 

问题是我的节点数,numnodes很大(~10 ^ 7),这可能需要一些时间。

通过直接输入属性贴图'pos'中的数据,是否有更有效的方法来执行此操作?

2 个答案:

答案 0 :(得分:0)

我会试试这个:

pos = coordinates[['X','Y']].values

如果graph-tool接受numpy数组,否则:

pos = [tuple(t) for t in coordinates[['X','Y']].values]

答案 1 :(得分:0)

我找到了问题的答案,有效的方法是使用.set_2d_array()函数;

{{1}}

诀窍。  这里的“.T”是转置函数,是numpy库的一部分。