【问题标题】:How to create a weighted graph from .gml file in python igraph如何在 python igraph 中从 .gml 文件创建加权图
【发布时间】:2014-02-16 13:02:57
【问题描述】:

我有一个 .gml 文件(也不是 graphML),其中包含我的节点和边的详细信息。我通过以下代码使用 igraph 库在 python 中导入图形:

g = igraph.read("mydata.gml")"

我在我的 .gml 文件中给出了边的值:

edge
[
source 1
target 0
value 6.25
]

文件也以

开头
graph
[
  directed 0
  weighted 1

但是,当我检查时,g.is_weighted() 它返回 false。如何让 igraph 将 .gml 文件中的值作为图形边缘的权重?

【问题讨论】:

    标签: python graph import igraph weighted


    【解决方案1】:

    is_weighted() 方法只是检查您的图形是否具有名为 weight 的边属性。在您的情况下,您不需要,因为 GML 文件中的值存储在 value 边缘属性中,而不是 weight 中。解决方案是在输入文件中将每次出现的value 替换为weight,或者在加载文件后重命名igraph 中的属性,如下所示:

    g.es["weight"] = g.es["value"]
    del g.es["value"]
    

    【讨论】:

    • 谢谢。在 igraph 中绘制图形时,有什么方法可以合并权重?可能有不同的边长?
    • 一些布局算法可以在一定程度上考虑边缘权重;例如,参见Graph.layout_fruchterman_reingold。但是,由于权重通常表示不能同时满足的约束集,因此这些算法不能保证尊重所有约束。
    • 嗯。谢谢您的帮助。在一定程度上解决了我的问题:)
    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多