这期分享的是Circular Graph(环形图),因为前几天在论坛看到滴友求助过类似的问题,故拿出来做一个系列。
方法:Circular Graph
软件:Matlab 2014b 以上版本 (注意版本!!)
适用数据类型:尤其适合描述连接、相关、小世界网络等
源脚本链接:http://nl.mathworks.com/matlabcentral/fileexchange/48576-circulargraph(Paul Kassebaum 2016)
function的调用:function =circularGraph(X)或function =circularGraph(X,'PropertyName',propertyvalue,...)
其中,X为一个相关矩阵,后面的都是根据自己需求的参数设置。
最基本的调用这样做就可以了:
X = [你的矩阵]
Figure;circularGraph(X)% 画图
你点击各个节点还能选择节点的“开、关”。
比如我的矩阵是一个22 * 22的相关矩阵,自己练习测试的效果如下(你还可以调节节点、线条的粗细、颜色等属性):
有些人抱怨Matlab画的图丑,其实不然(虽然默认属性确实丑),Matlab一个画图特别强大的地方在于图像上的所有属性都可以调节,自定义能力强,在你真正了解图形的属性后,所有图形中的元素都可以通过代码进行操纵。
到了大家自己练习的时间了,我给出样例demo (“四步走”方法),大家可以先用我的试验一下(记得先去源链接地址下载toolbox,然后set path,matlab版本需高于等于2014b),然后尝试写自己的code:
% Step 1: 输入矩阵。这里以10*10为例
rng(0);
x = [0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0];
% Step 2: 设定阈限显示连接。这里为了简便和直观,我这个阈限没用到,但这个设定特别适合卡p值显示连接。
thresh = 0.995;
x(x > thresh) = 1;
x(x
% Step 3:给你的节点取名字
myLabel = cell(length(x));
myLabel={'FP1'};
myLabel={'FPZ'};
myLabel={'FP2'};
myLabel={'AF3'};
myLabel={'AF4'};
myLabel={'FP1'};
myLabel={'FPZ'};
myLabel={'FP2'};
myLabel={'AF3'};
myLabel={'AF4'};
% Step 4:画图
figure;
myColorMap = randi([0 0],length(x),3);
circularGraph(x,'colormap',myColorMap,'label',myLabel);
领取专属 10元无门槛券
私享最新 技术干货