首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于add_edges_from的图形工具顶点标注

基于add_edges_from的图形工具顶点标注
EN

Stack Overflow用户
提问于 2021-11-20 16:55:36
回答 2查看 211关注 0票数 0

我尽力在网上寻找解决方案,但似乎在我的graph_tool网络中找不到解决方案。我有一个熊猫数据中心( dataframe df ),它有三个专栏:id_sourceid_targetweightid_sourceid_target包含文本形式的名称。我想用它们作为顶点标签。但是,当从熊猫数据中添加边缘时,我必须设置hashed=True。然后,代码如下所示

代码语言:javascript
复制
from graph_tool.all import *

g = Graph()
eweight = g.new_ep('double')
vmap = g.add_edge_list(df.values, eprops=[eweight], hashed=True)

我的目标是绘制这个带有顶点标签的小网络。当我不知道通过g.add_edge_list()函数在图中引入每个新节点的顺序时,我就无法找到如何添加顶点属性的解决方案。

我应该先添加顶点吗?然后在图上执行add_edge_list函数。第二步会识别顶点名称(或标签)吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-20 17:15:30

答案在vmap中。一直都在那里。当您对vmap进行索引时,它将得到标签名。

  • vmap[0]将是第一个顶点recorded.
  • vmap[1]的第二个顶点的标签,等等,

票数 0
EN

Stack Overflow用户

发布于 2021-11-20 17:06:12

来自Graph.add_edge_list的文档

向图中添加一个边列表,由edge_list给出,它可以是源和目标都是顶点索引的(源,目标)对的迭代器,也可以是形状的numpy.ndarray (E,2),其中E是边的数目,每一行指定一个(源,目标)对。如果列表引用图中不存在的顶点,则将创建它们。

您已经传递了df.values for edge_list,它有三列(即形状为(E,3)),但需要两列(形状为(E,2))。

试试这个:

代码语言:javascript
复制
g.add_edge_list(df[['id_source', 'id_target']].to_numpy(), eprops=[eweight], hashed=True)

我怀疑eprops应该是df['weight'],但我不确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70048008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档