Python-Networkx-使用节点列表绘制节点时出现问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-Networkx-使用节点列表绘制节点时出现问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2208字,纯文字阅读大概需要4分钟。
内容图文
我有一个这样的嵌套元组:
mostfrequent = (('16.37.97.17', '178.237.19.228', '55177', '443', '6', '1', '46'), ('16.37.97.17', '178.237.17.97', '44492', '443', '6', '1', '46'), ('16.37.97.29', '178.237.17.61', '56326', '443', '6', '1', '46'), ('16.37.97.222', '104.131.44.62', '60179', '80', '6', '2', '620'), ('16.37.93.196', '16.37.157.74', '2049', '691', '6', '1', '100'))
我想用通过nodelist声明的networkx来绘制每个子元组的每个元素:
nx.draw_networkx_nodes(G, pos, nodelist=flattened_list_nodes, node_size=1600, node_color='blue', alpha=0.6)
为此,我将元组A展平为一个列表(每个元素仅出现一次):
flattened_list_nodes = ['16.37.97.17', '178.237.19.228', '55177', '443', '6', '1', '46', '178.237.17.97', '44492', '16.37.97.29', '178.237.17.61', '56326', '16.37.97.222', '104.131.44.62', '60179', '80', '2', '620', '16.37.93.196', '16.37.157.74', '2049', '691', '100']
虽然我运行它时出现错误:
raise nx.NetworkXError('Node %s has no position.' % e)
networkx.exception.NetworkXError: Node '16.37.97.17' has no position.
我怎样才能解决这个问题?
我完整的代码:
for x in xrange(5):
G.add_edge('sIP:\n'+mostfrequent[x][0], countermfi[x])
G.add_edge('dIP:\n'+mostfrequent[x][1], countermfi[x])
G.add_edge('sPort:\n'+mostfrequent[x][2], countermfi[x])
G.add_edge('dPort:\n'+mostfrequent[x][3], countermfi[x])
G.add_edge('Protocol:\n'+mostfrequent[x][4], countermfi[x])
G.add_edge('Packets:\n'+mostfrequent[x][5], countermfi[x])
G.add_edge('Bytes:\n'+mostfrequent[x][6], countermfi[x])
pos = nx.kamada_kawai_layout(G) # positions for all nodes
#Hyperedges
nx.draw_networkx_nodes(G, pos, nodelist=countermfi, node_size=node_size, node_color='red', node_shape='s', alpha=1)
#Nodes
nx.draw_networkx_nodes(G, pos, nodelist=flattened_list_nodes, node_size=1600, node_color='blue', alpha=0.6)
#Edges
nx.draw_networkx_edges(G, pos, edgelist=G.edges(), width=2)
#Labels
nx.draw_networkx_labels(G, pos, font_size=11, font_family='sans-serif')
plt.axis('off')
plt.show()
先感谢您,
问候 :)
解决方法:
IIUC:
首先创建图形G:
G = nx.Graph()
G.add_nodes_from(flattened_list_nodes)
pos = nx.kamada_kawai_layout(G)
nx.draw_networkx_nodes(G, pos, nodelist=flattened_list_nodes, node_size=1600, node_color='blue', alpha=0.6)
输出:
内容总结
以上是互联网集市为您收集整理的Python-Networkx-使用节点列表绘制节点时出现问题全部内容,希望文章能够帮你解决Python-Networkx-使用节点列表绘制节点时出现问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。