将邻接矩阵转换成图

import matplotlib.pyplot as plt
import networkx as nx
import numpy as np# 示例的邻接矩阵
adjacency_matrix = np.array([[0, 1, 1, 0],[1, 0, 1, 1],[1, 1, 0, 1],[0, 1, 1, 0]
])# 创建一个无向图
G = nx.Graph()# 添加节点
num_nodes = len(adjacency_matrix)
G.add_nodes_from(range(num_nodes))# 添加边
for i in range(num_nodes):for j in range(i + 1, num_nodes):if adjacency_matrix[i][j] == 1:G.add_edge(i, j)# 使用 circular_layout 布局算法
pos = nx.circular_layout(G)node_labels = {0: 'A', 1: 'B', 2: 'C', 3: 'D'}  # 这里假设节点名称为 A、B、C、D
# 绘制图形
nx.draw(G, pos, with_labels=True, labels=node_labels, node_color='skyblue', node_size=500, font_weight='bold', font_size=10)
plt.title('Graph from Adjacency Matrix')
plt.show()
  1. import matplotlib.pyplot as plt:导入 matplotlib 库中的绘图模块,并使用别名 plt

  2. import networkx as nx:导入 networkx 库,并使用别名 nxnetworkx 是一个用于创建、操作和研究复杂网络的 Python 库。

  3. import numpy as np:导入 numpy 库,并使用别名 npnumpy 是 Python 中用于科学计算的一个核心库,提供了对多维数组和矩阵的支持。

  4. adjacency_matrix = np.array([...]):创建一个示例的邻接矩阵。这个邻接矩阵表示一个无向图的连接情况,其中元素的值为 1 表示节点之间有边相连,值为 0 表示没有边相连。

  5. G = nx.Graph():创建一个空的无向图。

  6. num_nodes = len(adjacency_matrix):计算邻接矩阵的大小,确定图中节点的数量。

  7. G.add_nodes_from(range(num_nodes)):向图中添加节点,节点的数量由 num_nodes 决定。

  8. for i in range(num_nodes)::遍历节点。

  9. for j in range(i + 1, num_nodes)::遍历节点,确保只考虑上三角部分,因为邻接矩阵是对称的。

  10. if adjacency_matrix[i][j] == 1::检查邻接矩阵中节点是否相连。

  11. G.add_edge(i, j):如果节点相连(邻接矩阵中值为 1),则在图中添加一条边连接这两个节点。

  12. pos = nx.circular_layout(G):使用 networkx 中的 circular_layout() 布局算法,将节点放置在一个圆形上,以确定节点的位置信息。

  13. nx.draw(G, pos, with_labels=True, node_color='skyblue', node_size=500, font_weight='bold', font_size=10):使用 networkxdraw() 函数绘制图形。pos 参数指定了节点的位置信息,with_labels=True 表示在节点上显示标签,node_color 设置节点的颜色,node_size 设置节点的大小,font_weight 设置标签的字体加粗程度,font_size 设置标签的字体大小。

  14. plt.title('Graph from Adjacency Matrix'):设置图形的标题。

  15. plt.show():显示绘制的图形。

  16. 在代码中,如果直接指定节点的详细信息,比如节点标签、节点名称等。但在图形绘制的过程中,使用了 with_labels=True 参数,这告诉 nx.draw() 函数要在节点上显示标签,这个标签默认是节点的索引值。在这个例子中,已经指定了标签信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技能大赛(高职组)答案

任务C:数据挖掘(10分) 所有模块都有,不是白嫖!!有需要可以联系我 环境说明: 服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问&#xf…

成长在于积累——https 认证失败的学习与思考

1. 引言 本周二长城项目在收尾过程中,出现了一个车端无法进行注册的问题:curl提示证书认证失败(其实已经能确认问题方向了,运维人员去确认证书问题即可)。虽然最终的原因是由于长城运维人员导致的。但是这个过程让我颇…

opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…

宝宝照片保存大法!一键制作照片书

亲爱的家长们,你们是否为宝宝成长过程中的各种美好瞬间而感到兴奋和感动?宝宝的笑容、第一次学步、第一次叫妈妈爸爸……这些珍贵的瞬间,我们都想把它们永远保存下来。现在,我们有一款神奇的工具,一键制作照片书&#…

还不知道指针和引用的区别,一篇文章教会你

1、引用的概念 1.引用不是新定义一个变量,而是给已存在变量取了一个别名 2.编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间 比如:孙悟空,可以叫他孙悟空,也可以叫齐天大圣。本质他们就是一个人 2、引用的定…

[nlp] RuntimeError: Llama is supposed to be a BPE model!报错解决

# tokenizer AutoTokenizer.from_pretrained(BASE_MODEL) 改成这个legacyFalse, use_fastFalse: tokenizer AutoTokenizer.from_pretrained(BASE_MODEL, legacyFalse, use_fastFalse)

【C++初阶】STL详解(五)List的介绍与使用

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

vs调试输出,不显示线程已退出

如题:一堆线程退出的信息,招人烦。 其实在vs设置里可以关闭: 工具-->选项-->调试-->输出窗口:

java--ArrayList快速入门

1.什么是集合&#xff1f; 集合是一个容器&#xff0c;用来装数据的&#xff0c;类似于数组。 2.有数组&#xff0c;为啥还学习集合 ①数组定义完成并启动后&#xff0c;长度是固定了。 ②集合大小可变&#xff0c;开发中用的更多。 3.ArrayList<E> 是用的最多、最…

Linux C 基于tcp和epoll在线聊天室

基于tcp和epoll在线聊天室 说明服务端代码 说明 服务端&#xff1a;实现了验证用户是否已经存在&#xff08;支持最大64用户连接&#xff09;支持广播用户进入退出聊天室以及用户聊天内容。   这里只提供里服务端代码&#xff0c;如果想要看客户端代码点击这里。 服务端代码…

LINUX入门篇【8】----计算机组成原理以及OS知识的总结

前言&#xff1a; 从而本篇文章开始&#xff0c;我们将进入LINUX的进程篇&#xff0c;但学习进程之前&#xff0c;我们首先需要重新认识我们的计算机&#xff0c;并且正确认识到控制进程的OS&#xff0c;即操作系统是怎样在计算机运行的过程中起到作用的。下面就让我们一同去了…

规则引擎Drools使用,0基础入门规则引擎Drools(一)基础入门

文章目录 系列文章索引一、规则引擎概述1、引出问题2、什么是规则引擎3、使用规则引擎的优势4、规则引擎应用场景 二、Drools介绍1、Drools概述2、Drools构成3、相关概念说明4、Drools执行过程5、KIE介绍 三、Drools入门案例1、业务场景说明2、开发实现 四、Drools基础语法1、规…

D. Secret Santa(构造)

首先n点n边&#xff0c;是一个基环树&#xff0c; 可以观察得到其实最大值是不变的 剩下的人自己随便找个人匹配即可 所以关键是构造一个方案解决匹配到自己的情况 找到所有没送出礼物的人&#xff0c;然后直接匹配&#xff0c;如果匹配到自己 因为没有送出礼物的人想送出…

配置静态 Eth-trunk

1、需求 1&#xff09;交换网络中存在2个 VLAN – 10 和 20 2&#xff09;每个VLAN的IP地址为&#xff1a;192.168.xx.0/24&#xff08;xx为 vlan 号&#xff09; 3&#xff09;对交换机之间的链路进行链路捆绑&#xff0c;增加互联带宽 4&#xff09;确保同 VLAN的 PC 之间互…

【Web实战】浅谈reactor netty httpclient请求解析过程

目录 0x00 前言 0x01 "畸形scheme"HTTP请求 0x02 其他 0x00 前言 Reactor Netty HttpClient 是 Reactor Netty 框架提供的一个用于进行异步 HTTP 请求的客户端库。它基于 Reactor 框架&#xff0c;采用响应式编程模型&#xff0c;允许以非阻塞的方式执行 HTTP 请…

如何通过RA过程识别Redcap UE?

以下是38.300中的描述 RedCap UE可以通过发送MSG3/MSGA的特定LCID识别&#xff0c;可选条件是通过MSGA/MSG1的PRACH occasion/PRACH preamble识别&#xff0c;根据这段描述&#xff0c;通过MSG3/MSGA的识别是必须项&#xff0c;而MSGA/MSG1的识别过程是可选项。如果通过MSGA/MS…

三极管基础知识

三极管 基本概念应用电路 基本概念 三极管 NPN 和PNP 电流方向 PNP是从e 流向 b c NPN是从 b c流向e 应用电路 箭头出发方向的电极比箭头指向方向的电极&#xff0c;高0.7v才导通。 NPN控制下游是否接到地&#xff0c;PNP控制上游的电源能否接过来。

笔试题之指针结合数组的精讲2

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

【Python大数据笔记_day11_Hadoop进阶之MR和YARNZooKeeper】

MR 单词统计流程 已知文件内容: hadoop hive hadoop spark hive flink hive linux hive mysql ​ input结果: k1(行偏移量) v1(每行文本内容)0 hadoop hive hadoop spark hive 30 flink hive linux hive mysql map结果:k2(split切割后的单词) v2(拼接…

webpack plugin

1、基本写法及使用 这里用到 emit 钩子 及make 钩子&#xff0c;前者是串行后者是并行 /*** 1.webpack加载webpack.config.js中所有配置&#xff0c;此时就会new TestPlugin()&#xff0c;执行插件的constructor2.webpack创建compiler对象3.遍历所有plugins中插件&#xff0…