在之前的文章中,分享了Matlab有向图的绘制模板:
进一步,如果我们想标注有向图的每条边的权重,或者直接用线条的粗细来表示权重,该怎么操作呢?
先来看一下成品效果:
文章来源:https://www.toymoban.com/news/detail-600729.html
特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取原始数据,并初始化绘图参数。
% 读取数据
load data.mat
% 初始化
S = s;
T = t;
W = w;
2. 颜色定义
作图不配色就好比做菜不放盐,总让人感觉少些味道。
但颜色搭配比较考验个人审美,需要多加尝试。
这里直接使用TheColor配色工具中的SCI权威配色库:
%% 颜色定义
C = TheColor('sci',1);
C1 = C(1,:);
C2 = C(6,:);
3. 带权重的有向图绘制
使用‘digraph’和‘plot’命令,绘制初始有向图。
G = digraph(S,T,W);
p = plot(G,'Layout','circle');
% p = plot(G,'Layout','circle','EdgeLabel',G.Edges.Weight);
4. 细节优化
将初始有向图赋上之前选择的颜色并进一步对一些关键属性进行调整:
% 线条属性调整
lw = 5*G.Edges.Weight/max(G.Edges.Weight);
p.LineWidth = lw;
p.EdgeColor = C1;
p.LineStyle = '-';
% 节点属性调整
p.Marker = 's';
p.NodeColor = C2;
p.MarkerSize = 12;
% 坐标区调整
axis off
% 标签、字体和字号
labels = {'A1','B1','F1','F2','D1','D2','D3','D4','D6','M1','M2','M3','M4','M6','M7','G1'};
p.NodeLabel = labels;
p.NodeFontSize = 10;
p.NodeFontName = 'Arail';
p.EdgeFontSize = 9;
p.EdgeFontName = 'Arail';
% 背景颜色
set(gcf,'Color',[1 1 1])
设置完毕后,以期刊所需分辨率、格式输出图片。
%% 图片输出
exportgraphics(gca,'test.png','Resolution',300)
以上。文章来源地址https://www.toymoban.com/news/detail-600729.html
到了这里,关于Matlab论文插图绘制模板第90期—带权重的有向图/图论图/网络图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!