【MATLAB基础绘图第21棒】绘制比例弦图 (Chord Diagram)

1 简介

1.1 弦图简介

弦图(Chord Diagram) 简介可参见弦图简介

弦图使用的是比例布局,就是同样节点之间的输入和输出都用同一条连接线显示。通常用于表示数据集及不同数据组之间的相似性。

在这里插入图片描述
节点围绕着圆周分布,点与点之间以弧线或贝塞尔曲线彼此连接以显示当中关系,然后再给每个连接分配数值(通过每个圆弧的大小比例表示)。此外,也可以用颜色将数据分成不同类别,有助于进行比较和区分。
弦图的缺点是过于混乱,尤其是当要显示太多连接的时候。

1.2 比例弦图简介

比例弦图(Proportional Chord Diagram) 是一种数据可视化工具,用于展示各类别之间的比例关系。它是弦图(Chord Diagram)的一种变体,弦图通常用于展示不同类别之间的关系和连接。比例弦图通过调整弦的宽度来反映各类别之间的数量或比例关系,使得观察者可以更直观地理解不同类别之间的比例关系。

比例弦图通常由一个圆形的环组成,环的每个弧段代表一个类别,弧段的宽度表示该类别的数量或比例大小。在环的内部,通过弦连接不同的类别,弦的宽度表示这两个类别之间的联系的强度或数量。

2 MATLAB绘制比例弦图

本代码参考 MATLAB | 全网唯一 MATLAB双向弦图(有向弦图)绘制,复现绘制得到。

2.1 数据准备

数据应准备全是非负数值的方形矩阵,矩阵第i行第j列表示由类i流向类j,第j行第i列表示由类j流向类i,也就是说矩阵是非对称的,可以同时统计两个类互相的数据流动,这里构造个随机数矩阵:

% 导入数据
dataMat = randi([0,8],[6,6]);

2.2 基本绘制

MATLAB实现代码如下:

clc
close all
clear
%% 主函数说明-MATLAB绘制比例弦图 (Chord Diagram)

%% 基础设置
pathFigure= '.\Figures\' ;

%% 导入数据
dataMat = randi([0,8],[6,6]);

%% 基本绘制

figure(1)
BCC=biChordChart(dataMat);
BCC=BCC.draw(); 

% 修改字体,字号及颜色
BCC.setFont('FontName','Times New Roman','FontSize',22)

str= strcat(pathFigure, "Fig.1"+" 基本绘制", '.tiff');
print(gcf, '-dtiff', '-r600', str);

图形绘制如下:
在这里插入图片描述

2.3 添加方向箭头

两侧都是弧形仅仅靠颜色不容易区分流入还是流出,因此可在创建对象时将Arrow属性设置为’on’

MATLAB实现代码如下:

clc
close all
clear
%% 主函数说明-MATLAB绘制比例弦图 (Chord Diagram)

%% 基础设置
pathFigure= '.\Figures\' ;

%% 导入数据
dataMat = randi([0,8],[6,6]);

%% 添加方向箭头
% 两侧都是弧形仅仅靠颜色不容易区分流入还是流出,因此可在创建对象时将Arrow属性设置为'on'

figure(2)
BCC=biChordChart(dataMat,'Arrow','on');
BCC=BCC.draw(); 

% 修改字体,字号及颜色
BCC.setFont('FontName','Times New Roman','FontSize',22)

str= strcat(pathFigure, "Fig.2"+" 添加方向箭头", '.tiff');
print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值