1

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

给定一个 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”并且我的 csv 是使用数据框“坐标”中的 pandas 读取的,我可以这样做:

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”中输入数据,是否有更有效的方法来执行此操作?

4

2 回答 2

1

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

pos.set_2d_array(coordinates[['X','Y']].values.T)

成功了。这里的“.T”是转置函数,是 numpy 库的一部分。

于 2016-06-28T02:51:45.920 回答
0

我会试试这个:

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

ifgraph-tool接受 numpy 数组,否则:

pos = [tuple(t) for t in coordinates[['X','Y']].values]
于 2016-06-26T21:47:23.393 回答