Python NetworkX中多重图的访问属性
我使用这个问题的代码:因为它几乎回答了我的问题,但我使用的是多重图,这就是为什么这个问题的答案对我没有帮助 我需要绘制一个基于权重的线厚度图,但该图绘制错误。我确信问题是因为边的顺序。这是我的密码: 我有一个多重图,它由看起来像这样的边组成:Python NetworkX中多重图的访问属性,python,networkx,Python,Networkx,我使用这个问题的代码:因为它几乎回答了我的问题,但我使用的是多重图,这就是为什么这个问题的答案对我没有帮助 我需要绘制一个基于权重的线厚度图,但该图绘制错误。我确信问题是因为边的顺序。这是我的密码: 我有一个多重图,它由看起来像这样的边组成: edgies = [(1,2, {'color': 'r'}),(2,3,{'color': 'b'}),(3,4,{'color':'g'})] G = nx.MultiGraph() G.add_edges_from(edgies, color =
edgies = [(1,2, {'color': 'r'}),(2,3,{'color': 'b'}),(3,4,{'color':'g'})]
G = nx.MultiGraph()
G.add_edges_from(edgies, color = 'color')
pos = nx.circular_layout(G)
edges = G.edges()
colors = [G[u][v]['color'] for u,v in edges]
nx.draw(G, pos, edges=edges, edge_color=colors)
plt.show()
colors = [G[u][v][0]["color"] for u,v in edges]
我得到的错误如下:
colors = [G[u][v]['color'] for u,v in edges]
KeyError: 'color'
如果我只使用一个图,但在使用多重图时给出了错误,则此代码可以工作。请让我知道,如果你需要任何进一步的澄清。谢谢 更改导致错误的行
colors = [print(G[u][v]) for u,v in edges]
我们可以看到您实际看到的是:
{0: {'color': 'r'}}
{0: {'color': 'b'}}
{0: {'color': 'g'}}
我假设networkx将它所在的图形存储为键,因此您只需首先访问键[0],如下所示:
edgies = [(1,2, {'color': 'r'}),(2,3,{'color': 'b'}),(3,4,{'color':'g'})]
G = nx.MultiGraph()
G.add_edges_from(edgies, color = 'color')
pos = nx.circular_layout(G)
edges = G.edges()
colors = [G[u][v]['color'] for u,v in edges]
nx.draw(G, pos, edges=edges, edge_color=colors)
plt.show()
colors = [G[u][v][0]["color"] for u,v in edges]
此访问模式在边缘部分有所记录。更改导致错误的行
colors = [print(G[u][v]) for u,v in edges]
我们可以看到您实际看到的是:
{0: {'color': 'r'}}
{0: {'color': 'b'}}
{0: {'color': 'g'}}
我假设networkx将它所在的图形存储为键,因此您只需首先访问键[0],如下所示:
edgies = [(1,2, {'color': 'r'}),(2,3,{'color': 'b'}),(3,4,{'color':'g'})]
G = nx.MultiGraph()
G.add_edges_from(edgies, color = 'color')
pos = nx.circular_layout(G)
edges = G.edges()
colors = [G[u][v]['color'] for u,v in edges]
nx.draw(G, pos, edges=edges, edge_color=colors)
plt.show()
colors = [G[u][v][0]["color"] for u,v in edges]
此访问模式在边缘部分有所记录