矩阵的密度图

时间:2015-10-12 08:35:31

标签: matlab matrix plot matlab-figure density-plot

我有一个100x200矩阵,我想将此矩阵显示为密度图。这是一个8x10样本。

X = [104 122 138 159 149 167 184 164 190 158; ...
     54  42  55  55  63  75  72  73  66  76; ...
     15  22  28  21  23  28  32  47  32  40; ...
     18  12  20  22  28  17  30  17  22  18; ...
     10  7   14  10  14  11  14  20  16  10; ...
     5   6   3   3   6   12  6   2   8   9; ...
     4   8   9   2   5   3   3   12  7   7; ...
     6   6   2   3   10  1   9   8   11  8]

我尝试使用bar3surfhist等功能,但他们没有达到我追求的最终结果。

我还想将新成功绘图上的y轴表示为对数轴。与例如semilogy(x,y,'rx')类似。

我还有其他方法吗?

enter image description here

2 个答案:

答案 0 :(得分:3)

如同“频谱图”一样“冲浪”怎么样?

XX = log([104 122 138 159 149 167 184 164 190 158; 
          54  42  55  55  63  75  72  73  66  76; 
          15  22  28  21  23  28  32  47  32  40; 
          18  12  20  22  28  17  30  17  22  18; 
          10  7   14  10  14  11  14  20  16  10; 
           5   6   3   3   6   12  6   2   8   9; 
           4   8   9   2   5   3   3   12  7   7; 
           6   6   2   3   10  1   9   8   11  8]

figure
surf(XX, 'edgecolor', 'none'); view(0,90); axis tight;
xlabel ('x')
ylabel ('y')

enter image description here

注意:第一行代表第一行(104,122,138 ...)      第8行代表第8行(6,7,2 ......) 暗红色=高值 浅蓝色=低值

答案 1 :(得分:3)

Matlab还提供了热图功能。

>> X = [104 122 138 159 149 167 184 164 190 158; ...
     54  42  55  55  63  75  72  73  66  76; ...
     15  22  28  21  23  28  32  47  32  40; ...
     18  12  20  22  28  17  30  17  22  18; ...
     10  7   14  10  14  11  14  20  16  10; ...
     5   6   3   3   6   12  6   2   8   9; ...
     4   8   9   2   5   3   3   12  7   7; ...
     6   6   2   3   10  1   9   8   11  8];
>> heatmap(X)

ans = 

  HeatmapChart with properties:

    ColorData: [8×10 double]

  Show all properties

出现以下情节: Heatmap of the matrix X