我想以有效的方式在图形工具中指定图形顶点的坐标。
鉴于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'中的数据,是否有更有效的方法来执行此操作?
答案 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库的一部分。