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

1 vue (au cours des 30 derniers jours)
Matt J
Matt J le 30 Avr 2021
Commenté : Matt J le 4 Mai 2021
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 commentaires
Matt J
Matt J le 30 Avr 2021
Maybe pre-set the title of the axes?
Same result...
Matt J
Matt J le 30 Avr 2021
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)

Connectez-vous pour commenter.

Réponse acceptée

Benjamin Kraus
Benjamin Kraus le 30 Avr 2021
Modifié(e) : Benjamin Kraus le 30 Avr 2021
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 commentaires
Benjamin Kraus
Benjamin Kraus le 4 Mai 2021
@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 le 4 Mai 2021
Then, is there any workaround that will let me constrain plot box aspect ratios in 2020a?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by