矩阵的密度图

Density plot of a matrix

我有一个 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') 非常相似。

还有其他方法可以使用吗?

"surf"它像一个频谱图怎么样?

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')

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

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

出现如下剧情: