Making a heat map from three vectors of different lengths
16 ビュー (過去 30 日間)
古いコメントを表示
From a set of three vectors (x,y,z), I want to generate a heat map of x,y and z where the color bar would denote z-values.Perhaps this answer was relevant https://www.mathworks.com/matlabcentral/answers/105390-making-a-heat-map-from-three-vectorsBut it was erased from the database. Thanks!
採用された回答
Adam Danz
2022 年 11 月 14 日
編集済み: Adam Danz
2022 年 11 月 14 日
In heatmap, XData define the number of columns and YData define the number of rows. Your matrix y is 21x10 meaning there will be 21 rows and 10 columns.
load('matlab.mat');
heatmap(z,x,y)
If you want there to be 10 rows and 21 columns,
figure
heatmap(x,z,y'); % note the transpose on y
How to remove cell labels
The examples above do not show the cell labels because the axes are too small given the number of cells but to remove the cell labels,
h = heatmap(__)
h.CellLabelColor = 'none';
Alternative: imagesc
- The direction of the y-axis differs between heatmap and imagesc
- imagesc sorts the x and y values
Yet another alternative is to use histogram2.
figure()
imagesc(z,x,y)
% reproduce heatmap's colormap
n=256;
cmap = [linspace(.9,0,n)', linspace(.9447,.447,n)', linspace(.9741,.741,n)'];
colormap(cmap);
axis xy
colorbar()
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Distribution Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!