【问题标题】:Passing edge weights to graphviz_layout in networkx将边缘权重传递给networkx中的graphviz_layout
【发布时间】:2012-05-21 21:45:38
【问题描述】:

每个人都找不到如何将权重列表的属性名称传递给 networkx 中的 graphviz_layout。像这样的:

nx.spring_layout(G, weight='weight.sum')

但使用nx.graphviz_layout(G, ...)。也许有人会知道?

【问题讨论】:

    标签: networking layout graph graphviz networkx


    【解决方案1】:

    如果我没听错的话,你想指定哪个边缘属性用作 graphviz 布局的边缘权重。从NetworkX docs 我看不出这是可能的。

    但是,graphviz 中的布局算法使用weight 属性。它是这样说的:

    weight

    边缘的重量。在dot中,重量越重,边缘越短、越直、越垂直。对于其他布局,较大的权重会促使布局使边缘长度更接近len 属性指定的长度。

    有了这个,您可以set the edge weight 为网络中的每个边缘:

    g = nx.Graph()
    g.add_edge(1, 2, {'weight': 4})
    

    g.add_edge(1, 2)
    g.edge[1][2]['weight'] = 4
    

    g[1][2]['weight'] = 4
    

    如果您想为边缘设置默认权重,您可以将其作为argument to the graphviz program 传递给您要在graphviz_layout 中使用:

    nx.graphviz_layout(g, prog='dot', args='-Eweight=4')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多