当前位置: 首页 > news >正文

利用matplotlib和networkx绘制有向图[显示边的权重]

使用Python中的matplotlib和networkx库来绘制一个有向图,并显示边的权重标签。


1. 定义了节点和边:节点是一个包含5个节点的列表,边是一个包含各个边以及它们的权重的列表。
2. 创建了一个有向图对象 `G`。
3. 向图中添加节点和边。
4. 设置了节点的布局,这里使用了Spring布局,它会尽可能地使得节点间的边长相等,并保持节点间的相对位置,`k`参数是一个布局调整参数。
5. 使用 `nx.draw()` 函数绘制了有向图,其中 `pos` 是节点的位置,`with_labels=True` 表示显示节点标签,`node_size` 控制节点的大小,`node_color` 是节点的颜色,`font_size` 是标签的字体大小,`arrows=True` 表示显示边的方向。
6. 添加了边的权重标签,用以显示每条边的权重。利用 `nx.draw_networkx_edge_labels()` 函数,将权重标签添加到相应的边上,并设置了标签的颜色和位置。
7. 最后使用 `plt.show()` 函数显示绘制好的有向图。
这段代码的核心是使用了 `networkx` 库来创建和操作图形数据结构,并使用 `matplotlib` 库来进行图形绘制。

import matplotlib.pyplot as plt
import networkx as nx# 节点和边
nodes = [0, 1, 2, 3, 4]
edges = [(0, 1, {'weight': 10}), (0, 3, {'weight': 5}), (1, 2, {'weight': 1}), (1, 3, {'weight': 2}),(2, 4, {'weight': 4}), (3, 1, {'weight': 3}), (3, 2, {'weight': 9}), (3, 4, {'weight': 2}),(4, 0, {'weight': 7}), (4, 2, {'weight': 6})
]# 创建有向图
G = nx.DiGraph()# 添加节点和边
G.add_nodes_from(nodes)
G.add_edges_from(edges)# 设置布局
pos = nx.spring_layout(G, k=0.5)# 绘制有向图,确保显示边的方向
nx.draw(G, pos, with_labels=True, node_size=700, node_color="lightblue", font_size=12, arrows=True)# 添加权重标签
edge_labels = {}
for u, v, data in G.edges(data=True):weight = data['weight']edge_labels[(u, v)] = f"{u}->{v}:{weight}"  # 将节点和权重标签放在一起显示nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_color='black', label_pos=0.3)plt.show()

相关文章:

利用matplotlib和networkx绘制有向图[显示边的权重]

使用Python中的matplotlib和networkx库来绘制一个有向图,并显示边的权重标签。 1. 定义了节点和边:节点是一个包含5个节点的列表,边是一个包含各个边以及它们的权重的列表。 2. 创建了一个有向图对象 G。 3. 向图中添加节点和边。 4. 设置了…...

Springboot+Vue项目-基于Java+MySQL的教学资料管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…...

从NoSQL到NewSQL——10年代大数据浪潮下的技术革新

引言 在数字化浪潮的推动下,数据库技术已成为支撑数字经济的坚实基石。腾讯云 TVP《技术指针》联合《明说三人行》特别策划的直播系列——【中国数据库前世今生】,我们将通过五期直播,带您穿越五个十年,深入探讨每个时代的数据库演…...

巴菲特股东大会5万字完整版来了!

北京时间5月4日晚22:15,一年一度的伯克希尔股东大会在美国小镇奥马哈重磅开幕。 在今年的伯克希尔股东大会上,比尔盖茨、苹果CEO蒂姆库克等商界大佬均现身大会现场。 在股东大会上,巴菲特先后谈到了已故老搭档芒格、减持苹果、AI影响、现金储…...

LY/T 1860-2022 非甲醛类热塑性树脂胶合板检测

热塑性树脂胶合板是指以木质单板为原料,以聚乙烯、聚丙烯等非甲醛类热塑性树脂为胶黏剂制备的一种普通胶合板。 LY/T 1860-2022非甲醛类热塑性树脂胶合板测试项目: 测试项目 测试方法 外观 GB/T 9846 尺寸 GB/T 9846 含水率 GB/T 17657 胶合强度…...

信息管理与信息系统就业方向及前景分析

信息管理与信息系统(IMIS)专业的就业方向十分广泛,包含计算机方向、企业信息化管理、数据处理和数据分析等,随着大数据、云计算、人工智能、物联网等技术的兴起,对能够处理复杂信息系统的专业人才需求激增,信息管理与信息系统就业…...

TCP的三次握手过程

TCP是面向连接的、可靠的、基于字节流的传输层通信协议。 TCP是面向连接的协议,所以使用 TCP前必须先建立连接,而建立连接是通过三次握手来进行的。 TCP包头结构 在讲解三次握手的过程之前,我们先来看一下 TCP包的结构: TCP包…...

Microsoft 推出 Phi-3 系列紧凑型语言模型

本心、输入输出、结果 文章目录 Microsoft 推出 Phi-3 系列紧凑型语言模型前言Phi-3 基础参数模型对比突破性训练技术降低人工智能安全风险Microsoft 推出 Phi-3 系列紧凑型语言模型 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 如果觉得本文对你…...

Retrofit库中,Call​;Retrofit使用举例;@GET,@PUT区别;

目录 在Retrofit库中,Call​ Retrofit使用举例 Call> listRepos(@Path("user") String user); Call是什么:...

# 怎么关闭 win10 系统中自带的【文件预览】功能?关闭WIN10【文件预览】功能的方法

怎么关闭 win10 系统中自带的【文件预览】功能?关闭WIN10【文件预览】功能的方法 win10 系统中自带的【文件预览】功能,默认是开启状态的,如果需要关闭它,一步搞定。 1、打开电脑文件浏览器,随便进入有文件的一个文件…...

强化学习玩flappy_bird

强化学习玩flappy_bird(代码解析) 游戏地址:https://flappybird.io/ 该游戏的规则是: 点击屏幕则小鸟立即获得向上速度。 不点击屏幕则小鸟受重力加速度影响逐渐掉落。 小鸟碰到地面会死亡,碰到水管会死亡。&#…...

JavaWeb请求响应概述

目录 一、请求响应流程-简述 二、深入探究 三、DispatcherServlet 四、请求响应流程-详细分析 一、请求响应流程-简述 web应用部署在tomcat服务器中,前端与后端通过http协议进行数据的请求和响应。前端通过http协议向后端发送数据请求,就可以访问到部…...

【IDEA】IDEA常用快捷键

Windows系统 快捷键功能备注CtrlShiftEnter格式化本行,并鼠标跳转到下一行CtrlAltL格式化代码Ctrli快速实现接口方法CtrlShiftU快速实现大小写转换CtrlAlt鼠标左键快速进入方法实现内部CtrlAlt←退回上一步鼠标所在地方CtrlAlt→回到刚才鼠标所在地方Ctrl空格代码智…...

Redission分布式锁 watch dog 看门狗机制

为了避免Redis实现的分布式锁超时,Redisson中引入了watch dog的机制,他可以帮助我们在Redisson实例被关闭前,不断的延长锁的有效期。 自动续租:当一个Redisson客户端实例获取到一个分布式锁时,如果没有指定锁的超时时…...

人脸识别系统架构

目录 1. 系统架构 1.1 采集子系统 1.2 解析子系统 1.3 存储子系统 1.4 比对子系统 1.5 决策子系统 1.6 管理子系统 1.7 应用开放接口 2. 业务流程 2.1 人脸注册 2.2 人脸验证 2.2.1 作用 2.2.2 特点 2.2.3 应用场景 2.3 人脸辨识 2.3.1 作用 2.3.2 特点 2.3.3…...

数塔问题(蛮力算法和动态规划)

题目:如下图是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大,及路径情况。(使用蛮力算法和动态规划算法分别实现) #include…...

启动 Redis 服务和连接到 Redis 服务器

启动 Redis 服务和连接到 Redis 服务器的步骤通常依赖于你的操作系统和 Redis 的安装方式。以下是一些常见的步骤: ### 启动 Redis 服务 对于大多数 Linux 发行版,Redis 服务可以通过以下命令启动: 1. 如果 Redis 是通过包管理器安装的&am…...

我独自升级崛起在哪下载 我独自升级电脑PC端下载教程分享

将于5月8日在全球舞台闪亮登场的动作角色扮演游戏《我独自升级崛起》,灵感源自同名热门动画与网络漫画,承诺为充满激情的游戏玩家群体带来一场集深度探索与广阔体验于一身的奇幻旅程。该游戏以独特的网络武侠世界观为基底,展现了一位普通人踏…...

STM32F4xx开发学习—GPIO

GPIO 学习使用STM32F407VET6GPIO外设 寄存器和标准外设库 1. 寄存器 存储器映射 存储器本身是不具有地址的,是一块具有特定功能的内存单元,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就叫做存储区映射。给内存单元分配地址之后…...

引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展

4月27日至29日,2024耒耜国际会议在江苏大学召开。科东软件作为特邀嘉宾出席此次盛会,并为江苏大学-科东软件“农业机器人操作系统”联合实验室揭牌。 校企联合实验室揭牌 在开幕式上,江苏大学、科东软件、上交碳中和动力研究院、遨博智能研究…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...