Adding titles squashes one of my images in a TiledChartLayout (R2020a)

조회 수: 1 (최근 30일)
Matt J
Matt J 2021년 4월 30일
댓글: Matt J 2021년 5월 4일
I have a TiledChartLayout of 6 images that initially looks like this:
Then, however, I add titles to the upper 5 images and it squashes the lower image to a flat line, resulting in this:
I tried resizing the figure, to no avail. Why might this be happening and how do I prevent it?
  댓글 수: 6
Matt J
Matt J 2021년 4월 30일
Maybe pre-set the title of the axes?
Same result...
Matt J
Matt J 2021년 4월 30일
Seems to work fine in R2021a:
h=openfig('testFig');
str='ABCDE';
ax=flip(findobj('Type','axes'));
for i=1:5, title(ax(i),str(i)); ax(i).FontSize=15; end
h.Position(4)=1.1*h.Position(4);
figure(h)

댓글을 달려면 로그인하십시오.

채택된 답변

Benjamin Kraus
Benjamin Kraus 2021년 4월 30일
편집: Benjamin Kraus 2021년 4월 30일
I opened the figure you created, and I see you have set the GridSize to [2756 3840].
TiledChartLayout is attempting to keep each of those axes the same height, so when you add a title to any axes in the second row it is going to make space for a title on all 2755 rows in between the axes.
A better approach is to leverage the south tile of the TiledChartLayout.
Generically:
t = tiledlayout('flow');
for i = 1:5
ax(i) = nexttile(t);
imagesc(ax(i),rand(100));
axis(ax(i),'off','square');
title(ax(i), char('@'+i));
ax(i).FontSize = 15;
end
ax(6) = axes(t);
imagesc(ax(6),linspace(0,1,256).*[1;1]);
colormap(t.Parent, gray);
ax(6).Layout.Tile = 'south';
pbaspect(ax(6),[20 1 1])
axis(ax(6),'off')
Or better yet, use the regular colorbar:
t = tiledlayout('flow');
for i = 1:5
ax(i) = nexttile(t);
imagesc(ax(i),rand(100));
axis(ax(i),'off','square');
title(ax(i), char('@'+i));
ax(i).FontSize = 15;
end
colormap(t.Parent, gray);
c = colorbar;
c.Layout.Tile = 'south';
  댓글 수: 3
Benjamin Kraus
Benjamin Kraus 2021년 5월 4일
@Matt J TiledChartLayout first shipped in R2019b, but there have been some bug fixes and improvements over the past few releases. One improvement (made in R2020b) is in how TileChartLayout handles axes with constrained plot box aspect ratios. The Colorbar gained the Layout property in R2020b as well.
Matt J
Matt J 2021년 5월 4일
Then, is there any workaround that will let me constrain plot box aspect ratios in 2020a?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by