【问题标题】:Coloring networkx edges based on weight基于权重为networkx边缘着色
【发布时间】:2013-07-12 00:19:38
【问题描述】:

如何根据这些边的权重更改 networkx 中图形中边的颜色?

下面的代码只是给出了所有的黑色边缘,即使颜色图是喷射的!

 nx.draw_networkx(g,pos=pos,with_labels=True,edge_colors=[g[a][b]['weight'] for a,b in g.edges()], width=4,edge_cmap = plt.cm.jet)

将边缘权重缩放到 0 到 1 之间不会改变任何内容。

我不确定上面的代码与related question 中的代码有何不同,除了我没有为draw_networkx 使用循环,因为我没有为图表设置动画。

【问题讨论】:

    标签: python matplotlib networkx


    【解决方案1】:
        #!/usr/bin/env python
        """
        Draw a graph with matplotlib.
        You must have matplotlib for this to work.
        """
        try:
            import matplotlib.pyplot as plt
            import matplotlib.colors as colors
            import matplotlib.cm as cmx
            import numpy as np
       except:
            raise 
    
       import networkx as nx
    
       G=nx.path_graph(8)
      #Number of edges is 7
       values = range(7)
      # These values could be seen as dummy edge weights
    
       jet = cm = plt.get_cmap('jet') 
       cNorm  = colors.Normalize(vmin=0, vmax=values[-1])
       scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=jet)
       colorList = []
    
       for i in range(7):
          colorVal = scalarMap.to_rgba(values[i])
          colorList.append(colorVal)
    
    
       nx.draw(G,edge_color=colorList)
       plt.savefig("simple_path.png") # save as png
       plt.show() # display
    

    刚刚修改了来自 networkx 的示例代码,该代码绘制了一个简单的图表。

    【讨论】:

      【解决方案2】:

      networkx 2.2 中的更简单用法,如 in this example 所示。

      并使用维克拉姆上述答案所使用的代码:

      import matplotlib.pyplot as plt
      import matplotlib.colors as colors
      import matplotlib.cm as cmx
      import numpy as np
      
      import networkx as nx
      
      G=nx.path_graph(8)
      #Number of edges is 7
      values = range(7)
      nx.draw(G, edge_color=values, cmap=plt.cm.jet)
      plt.show() # display
      

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 2016-06-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多