Data Visualization III:Circular Graph

引子


       Happy new year!赶在圣诞假期刚刚结束之际、正式投入工作前,推出数据可视化系列三(我怕之后会拖更)。这期分享的是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)% 画图

你点击各个节点还能选择节点的“开、关”。




比如我的矩阵是一个44 * 44的相关矩阵,自己练习测试的效果如下(你还可以调节节点、线条的粗细、颜色等属性):

有些人抱怨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 <= thresh) = 0;



% Step 3:给你的节点取名字

myLabel = cell(length(x));

myLabel{1}={'FP1'};

myLabel{2}={'FPZ'};

myLabel{3}={'FP2'};

myLabel{4}={'AF3'};

myLabel{5}={'AF4'};

myLabel{6}={'FP1'};

myLabel{7}={'FPZ'};

myLabel{8}={'FP2'};

myLabel{9}={'AF3'};

myLabel{10}={'AF4'};



% Step 4:画图

figure;

myColorMap = randi([0 0],length(x),3);

circularGraph(x,'colormap',myColorMap,'label',myLabel);



文末福利:
请允许我打下广告,推荐下我们实验室的网站,还在建设初期,希望大家支持
ibc.ecnu.edu.cn