Python 基于权重的networkx边着色
如何根据边的权重更改networkx中图形中边的颜色 下面的代码只是给出了所有的黑色边缘,即使颜色贴图是jetPython 基于权重的networkx边着色,python,matplotlib,networkx,Python,Matplotlib,Networkx,如何根据边的权重更改networkx中图形中边的颜色 下面的代码只是给出了所有的黑色边缘,即使颜色贴图是jet 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之间不会改变任何内容 我不确定上面的代码与a中的代码有何不同,只是我没有为draw\u 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之间不会改变任何内容
我不确定上面的代码与a中的代码有何不同,只是我没有为draw\u networkx
使用循环,因为我没有为图形设置动画
#!/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中绘制简单图形的示例代码 在
networkx2.2
中使用更简单,如图所示
并使用Vikram在上述答案中使用的代码:
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