MATLAB Answers

Axes automatically change size and get mis-aligned in App Designer

21 views (last 30 days)
Kristoffer Walker
Kristoffer Walker on 21 Jan 2021
Commented: Kristoffer Walker on 23 Jan 2021
Hello Matlab Community!
Happy New Year! Hope you all have a productive year coding your hearts away to solve important problems!
One of the very few issues I have been having in Matlab recently has been App Designer's automatic adjustment of axes after plotting. I pre-define the size of my axes so that they are aligned in a 2 x 2 matrix fashion. I push a button and all 4 axes are populated with data. Then an automatic size adjustment of the axes occurs. This causes them to not be aligned and look unprofessional, and in some cases, makes it difficult to correlate between axes when they share the same axis min/max values. Is there any simple way to fix this? Is this fixed or is there an option to "freeze" axes dimensions in newer versions? I have also tried using the Grid Layout option, but that did not prevent the automatic size adjustements.
Attached are screen shots before (aligned, as shown in App Designer) and after (misaligned).
Best regards,
Kris

Answers (1)

Matt Gaidica
Matt Gaidica on 22 Jan 2021
Kris, one thing you can do is get the position property from all axes before you populate the data and then set it again afterwards.
% before
pos = get(AxesHandle,'Position');
% after
set(AxesHandle,'Position',pos);
  1 Comment
Kristoffer Walker
Kristoffer Walker on 23 Jan 2021
Hi Matt,
Thanks for the reply and your idea!
I just tried it, but it does not have an effect either in a canvas without a grid or in a "grid-converted" canvas. The set command reports the following warning:
Warning: Unable to set 'Position', 'InnerPosition', or 'OuterPosition' for components in 'GridLayout'.
Perhaps this worked in GUIDE in the past, but maybe not in App Designer?
Best regards,
Kris

Sign in to comment.

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!