matlab怎么标记节点,为图节点和边添加标签
创建并绘制图
创建表示某个城市中网格化街道和交叉点的图。为边添加权重,使主干道和横穿街道在图中以不同的方式显示。使用与边权重成比例的边线宽绘图。
s = [1 1 2 2 3 4 4 5 5 6 7 7 8 8 9 10 11];
t = [2 4 3 5 6 5 7 6 8 9 8 10 9 11 12 11 12];
weights = [1 5 1 5 5 1 5 1 5 5 1 5 1 5 5 1 1];
G = graph(s,t,weights);
P = plot(G,'LineWidth',G.Edges.Weight);
添加节点标签
对于节点数不超过 100 个的图,MATLAB® 会使用数字节点索引或节点名称自动标记节点(更大的图默认情况下将省略这些标签)。但是,您可以通过调整 GraphPlot 对象 P 的 NodeLabel 属性或使用 labelnode 函数来更改节点标签。因此,即使节点具有名称,也可以使用与这些名称不同的标签。
删除默认的数字节点标签。将一个交叉点标记为 Home,将另一个标记为 Work。
labelnode(P,1:12,'')
labelnode(P,5,'Home')
labelnode(P,12,'Work')
添加边标签
在绘制的图中,边不是自动标记的。您可以通过更改 GraphPlot 对象 P 的 EdgeLabel 属性值或使用 labeledge 函数来添加边标签。
为纽约市的街道添加边标签。边的顺序在图的 G.Edges 表中定义,因此您指定的标签顺序必须遵循该顺序。将边标签直接存储在 G.Edges 表中很方便,这样边名称就位于其他边信息的旁边。
G.Edges
ans=17×2 table
EndNodes Weight
________ ______
1 2 1
1 4 5
2 3 1
2 5 5
3 6 5
4 5 1
4 7 5
5 6 1
5 8 5
6 9 5
7 8 1
7 10 5
8 9 1
8 11 5
9 12 5
10 11 1
⋮
下面的示例有 17 条边,但只有 7 个唯一的街道名称。因此,可以在元胞数组中定义街道名称,然后对元胞数组进行索引,以检索每条边需要的街道名称。将变量添加到包含街道名称的 G.Edges 表中。
streets = {'8th Ave' '7th Ave' '6th Ave' '5th Ave' ...
'W 20th St' 'W 21st St' 'W 22nd St'}';
inds = [1 5 1 6 7 2 5 2 6 7 3 5 3 6 7 4 4];
G.Edges.StreetName = streets(inds);
G.Edges
ans=17×3 table
EndNodes Weight StreetName
________ ______ _____________
1 2 1 {'8th Ave' }
1 4 5 {'W 20th St'}
2 3 1 {'8th Ave' }
2 5 5 {'W 21st St'}
3 6 5 {'W 22nd St'}
4 5 1 {'7th Ave' }
4 7 5 {'W 20th St'}
5 6 1 {'7th Ave' }
5 8 5 {'W 21st St'}
6 9 5 {'W 22nd St'}
7 8 1 {'6th Ave' }
7 10 5 {'W 20th St'}
8 9 1 {'6th Ave' }
8 11 5 {'W 21st St'}
9 12 5 {'W 22nd St'}
10 11 1 {'5th Ave' }
⋮
更新 EdgeLabel 属性,以引用这些街道名称。
P.EdgeLabel = G.Edges.StreetName;
调整字体属性
图论图中的节点标签和边标签具有各自的属性,它们控制着标签的外观和样式。由于属性是分离的,因此可以对节点标签和边标签使用不同的样式。
对于节点标签,可以调整:
NodeLabel
NodeLabelColor
NodeFontName
NodeFontSize
NodeFontWeight
NodeFontAngle
对于边标签,可以调整:
EdgeLabel
EdgeLabelColor
EdgeFontName
EdgeFontSize
EdgeFontWeight
EdgeFontAngle
使用这些属性,可以调整此示例中纽约市街道使用的字体:
更改 NodeFontSize 和 NodeLabelColor,使交叉点标签的字体为 12 磅,颜色为红色。
更改 EdgeFontWeight、EdgeFontAngle 和 EdgeFontSize,为一个方向的街道使用较大的粗体字体,为另一个方向的街道使用较小的斜体字体。
更改 EdgeFontName,使用 Times New Roman 作为边标签。
可以使用 highlight 函数更改图边子集的图属性。创建逻辑索引 isAvenue,对于包含单词 'Ave' 的边标签,逻辑索引的值为 true。使用此逻辑向量作为 highlight 的输入,以一种方式标记所有主干道,以另一种方式标记所有非主干道。
P.NodeFontSize = 12;
P.NodeLabelColor = 'r';
isAvenue = contains(P.EdgeLabel, 'Ave');
highlight(P, 'Edges', isAvenue, 'EdgeFontAngle', 'italic', 'EdgeFontSize', 7);
highlight(P, 'Edges', ~isAvenue, 'EdgeFontWeight', 'bold', 'EdgeFontSize', 10);
P.EdgeFontName = 'Times New Roman';
突出显示边
找到 Home 和 Work 节点之间的最短路线,并检查哪些街道在该路线上。以红色突出显示该路线上的节点和边,并删除不在该路线上的所有边的边标签。
[path,d,pathEdges] = shortestpath(G,5,12)
path = 1×4
5 6 9 12
d = 11
pathEdges = 1×3
8 10 15
G.Edges.StreetName(pathEdges,:)
ans = 3x1 cell
{'7th Ave' }
{'W 22nd St'}
{'W 22nd St'}
highlight(P,'Edges',pathEdges,'EdgeColor','r')
highlight(P,path,'NodeColor','r')
labeledge(P, setdiff(1:numedges(G), pathEdges), '')
matlab怎么标记节点,为图节点和边添加标签相关推荐
- matlab数据游标属性设置,将节点属性添加到图论图数据提示
绘制具有数据提示的 GraphPlot 对象 创建随机有向图的 GraphPlot 图对象.将额外的节点属性 wifi 添加到该图. rng default G = digraph(sprandn(2 ...
- matlab 加节点,添加图节点名称、边权重和其他属性
创建图 创建一个有向图.s 和 t 中的对应元素用于定义图中每条边的源节点和目标节点. s = [1 1 2 2 3]; t = [2 4 3 4 4]; G = digraph(s,t) G = d ...
- matlab节点连通率,利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系
一.目的 ①在不同节点个数的情况下,用Matlab拟合出连通率与通信半径的关系曲线. ②在不同节点通信半径的情况下,用Matlab拟合出连通率与节点个数的关系曲线. 二.方法描述 在1x1的单位矩形中 ...
- Neo4j ① <图论>图,节点,关系,属性<知识图谱和图库>图谱,图库,优势<基础>模块,应用场景,环境搭建,浏览器
目录 第一部分 图 和 Neo4j 1.1 图论 1.1.1 图论起源 --- 柯尼斯堡(Konigsberg)七桥问题 1.1.2 图 和 节点 1.1.3 节点关系表达 1.1.4 属性图模型规则 ...
- python绘制时间节点事件图_在节点上绘制带有时间标签的图形
我有一个(有向无环)图,这样每个节点都有一个离散的时间戳,也就是说,每个节点都有一个数字:1,2,3,4...在 图形可能有多个组件,并且时间戳随着图形的方向而增加.在 我把图作为netowrkx对象 ...
- python绘制时间节点事件图
文章目录 前言 例子 封装 更新-插图 前言 偶然在官网发现了一个时间节点事件图便学习了一下,横轴为时间列表,纵轴为相应时间的文本内容,可以展示各个时间节点的一些事件.虽然和前端画的没法比,但封装好用 ...
- 举个栗子~Tableau 技巧(237):用多节点瀑布图分阶段查看数据
瀑布图(下图)既能反映数据的多少,又能直观的反映出数据的增减变化.早期的栗子,我们分享过 瀑布图 的实现方法. 如果将瀑布图用在一些项目进度分析中,要阶段性查看当前的数据情况,就得在瀑布图中增加一些节 ...
- pytorch 训练过程acc_【图节点分类】10分钟就学会的图节点分类教程,基于pytorch和dgl...
图神经网络中最流行和广泛采用的任务之一就是节点分类,其中训练集/验证集/测试集中的每个节点从一组预定义的类别中分配一个真实类别. 为了对节点进行分类,图神经网络利用节点自身的特征,以及相邻节点和边的特 ...
- Cytoscape制作带bar图和pie图节点的网络图
采用cytoscape制作带bar图和pie图节点的网络图 作者:中科院微生物所 陈亮博士 本教程旨在告诉大家如何使用cytoscape根据Node信息表格制作带有barplot信息节点的网络图.以安 ...
最新文章
- IOS上路_07-简单示例-电子书
- 10年老电脑如何提速_电脑越用越卡?如何简单升级,让你的旧笔记本瞬间提速...
- 能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...
- python在哪里画柱形图_Python笔记:用pyecharts绘制柱形图
- python设置字符编码_python字符编码问题一则
- USB Storage启动EBox4300
- android activitygroup tab,android 之用ActivityGroup 实现Tab分页
- 应用程序无法启动,因为应用程序的并行配置不正确 解决方案
- vue实现下载excel模板、导入excel文件、导出excel文件
- java 三维数组 魔方_三维数组的横向/纵向输出
- 超漂亮的网页图文排版
- 组原4_指令偏移寻址
- office 365 excel 遇到问题 需要修复
- 重要!SpringBoot一个非常蛋疼的无法启动的问题解决
- 详解网络爬虫:网络爬虫是干什么的?有哪些应用场景?
- 从“吉德林法则”看错题本的正确整理方法
- 良品铺子、三只松鼠、百草味如何打造超级产品掠夺休闲零食行业
- PHP 根据QQ号获取QQ头像和昵称
- C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据)
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(12月17日)...
热门文章
- 齐次Markov链的遍历性判定
- 电脑投屏到电视android,电脑怎么投屏到电视?看完这篇文章你就懂了
- 双球坐标系_坐标系为啥有多种,笛卡尔坐标系、柱坐标系、球坐标系都有啥区别...
- 微信QQ域名防封防红防屏蔽系统源码
- insmod: error inserting 'xxx.ko': -1 Invalid module format
- 使用a标签时不用href=““调转页面
- 服务器能当电脑用吗?与普通电脑有何区别?
- spring security 3.1中条用js方法登陆后无法回调
- 王者的荣耀--Monza后记
- 2016码农谷全国大学生程序设计邀请赛(测试赛)