创建六边形图

时间:2014-04-26 17:48:10

标签: matlab

所以,我有这个看起来像这样的excel文件(9 - 空,其他数字 - 数据):

 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
 9 9 9 9 9 9 9 2 2 1 1 1 2 2 9
 9 9 9 9 9 9 2 3 1 1 1 1 3 2 9
 9 9 9 9 9 1 1 1 1 1 1 1 1 1 9
 9 9 9 9 1 1 1 1 1 1 1 1 1 1 9
 9 9 9 1 1 1 1 1 1 1 1 1 1 1 9
 9 9 2 1 1 1 1 1 1 1 1 1 1 2 9
 9 2 3 1 1 1 1 4 1 1 1 1 3 2 9
 9 2 1 1 1 1 1 1 1 1 1 1 2 9 9
 9 1 1 1 1 1 1 1 1 1 1 1 9 9 9
 9 1 1 1 1 1 1 1 1 1 1 9 9 9 9
 9 1 1 1 1 1 1 1 1 1 9 9 9 9 9
 9 2 3 1 1 1 1 3 2 9 9 9 9 9 9
 9 2 2 1 1 1 2 2 9 9 9 9 9 9 9
 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

我必须创建一个看起来像这样的图(像热图一样):

heat map http://b-inet.com/intellect/technology/nuclear-reactor/index_files/image011.gif

我需要为我的论文做这件事。问题是,我不是程序员。但有人告诉我,最好的工具是Matlab(虽然我确信,还有其他工具)。谁能帮我这个 ?

1 个答案:

答案 0 :(得分:0)

首先:重新排列Excel计算以提供更好的格式化矩阵。然后使用此Matlab / Octave代码:

d=[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9;
9,9,9,9,2,2,1,1,1,2,2,9,9,9,9;
9,9,9,2,3,1,1,1,1,3,2,9,9,9,9;
9,9,9,1,1,1,1,1,1,1,1,1,9,9,9;
9,9,1,1,1,1,1,1,1,1,1,1,9,9,9;
9,9,1,1,1,1,1,1,1,1,1,1,1,9,9;
9,2,1,1,1,1,1,1,1,1,1,1,2,9,9;
9,2,3,1,1,1,1,4,1,1,1,1,3,2,9;
9,2,1,1,1,1,1,1,1,1,1,1,2,9,9;
9,9,1,1,1,1,1,1,1,1,1,1,1,9,9;
9,9,1,1,1,1,1,1,1,1,1,1,9,9,9;
9,9,9,1,1,1,1,1,1,1,1,1,9,9,9;
9,9,9,2,3,1,1,1,1,3,2,9,9,9,9;
9,9,9,9,2,2,1,1,1,2,2,9,9,9,9;
9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]'

figure; hold on
s=size(d);
for i = 1:s(1)
    for j=1:s(2)
        if d(i,j)!=9
            scatter(i+mod(j,2)/2,j, 40, d(i,j), 'filled');
        end
    end
end
colormap('hot');
axis equal;

colormap('hot')命令生成此图中的颜色。如果你想要不同的颜色,请阅读colormap命令。