python将邻接矩阵输出成图的实现
Python  /  管理员 发布于 5年前   141
利用networkx,numpy,matplotlib,将邻接矩阵输出为图形。
1,自身确定一个邻接矩阵,然后通过循环的方式添加变,然后输出图像
import networkx as nximport matplotlib.pyplot as pltimport numpy as np G = nx.Graph()Matrix = np.array( [ [0, 1, 1, 1, 1, 1, 0, 0], # a [0, 0, 1, 0, 1, 0, 0, 0], # b [0, 0, 0, 1, 0, 0, 0, 0], # c [0, 0, 0, 0, 1, 0, 0, 0], # d [0, 0, 0, 0, 0, 1, 0, 0], # e [0, 0, 1, 0, 0, 0, 1, 1], # f [0, 0, 0, 0, 0, 1, 0, 1], # g [0, 0, 0, 0, 0, 1, 1, 0] # h ])for i in range(len(Matrix)): for j in range(len(Matrix)): G.add_edge(i, j) nx.draw(G)plt.show()
2,有向图
G = nx.DiGraph()G.add_node(1)G.add_node(2)G.add_nodes_from([3, 4, 5, 6])G.add_cycle([1, 2, 3, 4])G.add_edge(1, 3)G.add_edges_from([(3, 5), (3, 6), (6, 7)])nx.draw(G)# plt.savefig("youxiangtu.png")plt.show()
3, 5节点完全图
G = nx.complete_graph(5)nx.draw(G)plt.savefig("8nodes.png")plt.show()
4,无向图
G = nx.Graph()G.add_node(1)G.add_node(2)G.add_nodes_from([3, 4, 5, 6])G.add_cycle([1, 2, 3, 4])G.add_edge(1, 3)G.add_edges_from([(3, 5), (3, 6), (6, 7)])nx.draw(G)# plt.savefig("wuxiangtu.png")plt.show()
5,颜色节点图
G = nx.Graph()G.add_edges_from([(1, 2), (1, 3), (1, 4), (1, 5), (4, 5), (4, 6), (5, 6)])pos = nx.spring_layout(G) colors = [1, 2, 3, 4, 5, 6]nx.draw_networkx_nodes(G, pos, node_color=colors)nx.draw_networkx_edges(G, pos) plt.axis('off')# plt.savefig("color_nodes.png")plt.show()
将图转化为邻接矩阵,再将邻接矩阵转化为图,还有图的集合表示,邻接矩阵表示,图形表示,这三种表现形式互相转化的问题是一个值得学习的地方,继续加油!
以上这篇python将邻接矩阵输出成图的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..博主 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号