Aligning subplots (colorbar and axis equal issue)

33 views (last 30 days)
TP
TP on 17 Aug 2018
Edited: jonas on 17 Aug 2018
What would be the simplest way to align the x-axes of the two subplots while keeping the "axis equal" and "axis tight" properties on the bottom subplot? Thank you.
figure('position',[680 183 560 795]) subplot(2,1,1) imagesc(rand(1,3)) colorbar
subplot(2,1,2) imagesc(rand(3,3)) axis equal axis tight

Answers (1)

jonas
jonas on 17 Aug 2018
Edited: jonas on 17 Aug 2018
This was more difficult than I'd imagined, as axis equal changes the 'tightinset' and 'aspectratio' of the plot. This fileexchange function ( link ) proved very helpful. Using this function, you can try this code:
%%Original code
figure('position',[680 183 560 795])
h(1)=subplot(2,1,1)
imagesc(rand(1,3))
colorbar
h(2)=subplot(2,1,2)
imagesc(rand(3,3))
axis equal
axis tight
%%Add this section
pos{1} = plotboxpos(h(1))
pos{2} = plotboxpos(h(2))
NewPos=[pos{2}(1) pos{1}(2) pos{2}(3) pos{1}(4)]
set(h(1),'position',NewPos);
See attachment for results. The x-axes are aligned while the original height is maintained.

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!