Plotting hitmap with different box size

1 回表示 (過去 30 日間)
Mudasser Seraj
Mudasser Seraj 2018 年 7 月 27 日
コメント済み: Mudasser Seraj 2018 年 7 月 30 日
Hello,
I have a 64x9 matrix and I want to plot a heatmap with different box sizes. Figure as below.
Can someone please help me with this? Added sample data file
  5 件のコメント
Mudasser Seraj
Mudasser Seraj 2018 年 7 月 27 日
編集済み: Mudasser Seraj 2018 年 7 月 27 日
Yeah. That's why I am asking help if someone can do this with codes. I couldn't find anything like this in File Exchange.
jonas
jonas 2018 年 7 月 27 日
You can do this quite easily with scatter3. I'll give it a try.

サインインしてコメントする。

採用された回答

Kelly Kearney
Kelly Kearney 2018 年 7 月 27 日
You can create this pretty easily using patches:
The test data:
c = rand(20,9)*2 - 1; % Color value
s = c; % Scale value
Plot
% Coordinates for a box
xbox = [-1 -1 1 1 -1]*0.5;
ybox = [-1 1 1 -1 -1]*0.5;
% Coordinates for the box centers
[yc,xc] = ndgrid(1:size(c,1), 1:size(c,2));
xc = xc + 0.5;
yc = yc + 0.5;
% Scale the box and add to center coordinates
x = xc(:) + xbox.*s(:);
y = yc(:) + ybox.*s(:);
% Plot
patch(x',y',c(:),'edgecolor', 'none');
axis tight equal;
set(gca, 'clim', [-1 1]);
colorbar;
Note that in this example I'm using the implicit expansion that was introduced recently (R2017 or so)... in older versions you'll have to use repmat, bsxfun, etc.
  1 件のコメント
Mudasser Seraj
Mudasser Seraj 2018 年 7 月 30 日
Thank you so much.

サインインしてコメントする。

その他の回答 (1 件)

jonas
jonas 2018 年 7 月 27 日
編集済み: jonas 2018 年 7 月 27 日
Here's an alternative using scatter3.
%%Some data
[X,Y]=meshgrid(1:10,1:10);
Z=rand(10,10).*2-1;
figure;hold on
%%Scale for color
zc=(Z+1).*100;
cn = ceil(max(zc(:)));
cm = colormap(parula(cn));
%%Scale Z for box size
zb=abs(Z(:).*850);
%%plot and fix visuals
h=scatter3(X(:), Y(:), Z(:), zb,cm(ceil(zc),:),'s','filled')
colorbar
caxis([-1 1])
set(h,'markeredgecolor','k')
set(gca,'xtick',1:10,'ytick',1:10)
box on
axis([0,11,0,11])
view(2)
grid on
See attachment
  1 件のコメント
Mudasser Seraj
Mudasser Seraj 2018 年 7 月 30 日
Thanks a lot.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeData Distribution Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by