Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NetworkX中多重图的访问属性_Python_Networkx - Fatal编程技术网

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]
此访问模式在边缘部分有所记录