使用Matlab画出复杂网络博弈中热图(三维图)(学术论文)

时间:2021-09-06 06:48:03

如图所示,有的时候叫热图(可能根据不同的色彩分别吧),下面简单介绍下,有点累人的图。(Matlab所作,后面会给出代码)

使用Matlab画出复杂网络博弈中热图(三维图)(学术论文)

具体需要看这幅图的横坐标与纵坐标的粒度是多少,比如这幅图,每幅子图选取的粒度为0.025,所以横坐标与纵坐标都需要一致(都为0.025,至少我做的是这样,如有问题请指出),其实每个点都是一个像素,比如说(0.025,0.025)就是一个像素,每个像素都是一个数值
得到的部分数据格式如下:
第一列为横坐标,第二列为纵坐标,第三列为像素点(代表你所需要的指标,在这幅图中代表群体合作率)
前端:
使用Matlab画出复杂网络博弈中热图(三维图)(学术论文)

后端:
使用Matlab画出复杂网络博弈中热图(三维图)(学术论文)

由数据格式可知,这是一个全集,即每个点都有另外的点会有结果,所以一共有1600个结果,每幅子图都是由1600个结果画成的。
matlab代码:

subplot(2,2,1,'Position',[0.15 0.56 0.3 0.4])
num=xlsread('G:\DCX\done\2016\new_PGG\7.10_phase_alpha_0-1\alpha=0-1_r=3.6.xlsx','Sheet1','c1:c1681');
[X,Y] = meshgrid(0:0.025:1.0,0:0.025:1.0);
Z = reshape(num,41,41);
surf(X,Y,Z);

ylabel('$$\varphi$$','interpreter','laTex');

set(gca,'fontsize',10,'FontName','High Tower Text','box','on','xtick',[],'ytick',[0:0.2:1.0]);grid on

subplot(2,2,2,'Position',[0.50 0.56 0.3 0.4])
num=xlsread('G:\DCX\done\2016\new_PGG\7.10_phase_alpha_0-1\alpha=0-1_r=3.2.xlsx','Sheet1','c1:c1681');
[X,Y] = meshgrid(0:0.025:1.0,0:0.025:1.0);
Z = reshape(num,41,41);
surf(X,Y,Z);

axis off
grid on

subplot(2,2,3,'Position',[0.15 0.09 0.3 0.4])

num=xlsread('G:\DCX\done\2016\new_PGG\7.10_phase_alpha_0-1\alpha=0-1_r=2.8.xlsx','Sheet1','c1:c1681');
[X,Y] = meshgrid(0:0.025:1.0,0:0.025:1.0);
Z = reshape(num,41,41);
surf(X,Y,Z);

xlabel('$$\epsilon$$','interpreter','LaTex');
ylabel('$$\varphi$$','interpreter','laTex');

set(gca,'fontsize',10,'FontName','High Tower Text','box','on','xtick',[0:0.2:1.0],'ytick',[0:0.2:1.0]);grid on
subplot(2,2,4,'Position',[0.50 0.09 0.3 0.4])
num=xlsread('G:\DCX\done\2016\new_PGG\7.10_phase_alpha_0-1\alpha=0-1_r=2.2.xlsx','Sheet1','c1:c1681');
[X,Y] = meshgrid(0:0.025:1.0,0:0.025:1.0);
Z = reshape(num,41,41);
surf(X,Y,Z);
xlabel('$$\epsilon$$','interpreter','LaTex');

set(gca,'fontsize',10,'FontName','High Tower Text','box','on','xtick',[0:0.2:1.0],'ytick',[]);
grid on

代码画的是四幅图,可能会涉及调节位置的问题。

有的时候,图形导出来会有类似白色条形状,可以用高清图导出试试,代码如下:

使用Matlab画出复杂网络博弈中热图(三维图)(学术论文)

set(gcf, 'PaperPositionMode', 'auto')
print -dpng -r1700 f3.png