Question related to pcolor bar and its position

6 views (last 30 days)
Hi! Can anyone please tell me
a) how can I use one long pcolorbar at the right side of this figure instead of using 4 different colorbar for four subplots?
This is the figure -
b) How to minimize the distances between teh four subplots, so that they are put closer to each other?
The code I am using for the plot is this -
for ii = 1:4
ax(ii) = subplot(2,2,ii);
h{ii} = pcolor(LON,LAT,flip(Tide_type{ii}));
set(h{ii}, 'EdgeColor', 'none');
shading interp;
colorbar;
caxis([12.5 15.5]);
setup_plots(ax(ii))
end
Any feedback will be much appreaciated, thank you!!
  1 Comment
Walter Roberson
Walter Roberson on 23 Feb 2023
tiledlayout can supposedly get tiles closer together than subplot does.

Sign in to comment.

Accepted Answer

Jacob Ward
Jacob Ward on 23 Feb 2023
You can manually change the position of the colorbar using the 'position' property. Here's an example:
fig = figure;
subplot(2,2,1)
imagesc([0 1 0; 1 2 1; 0 1 0;])
subplot(2,2,2)
imagesc([0 1 0; 1 2 1; 0 1 0;])
subplot(2,2,3)
imagesc([0 1 0; 1 2 1; 0 1 0;])
subplot(2,2,4)
imagesc([0 1 0; 1 2 1; 0 1 0;])
pos = get(subplot(2,2,4),'Position');
colorbar('Position', [pos(1)+pos(3)+0.01 pos(2) 0.03 pos(2)+pos(4)*2.07])
  1 Comment
Les Beckham
Les Beckham on 23 Feb 2023
Note that this is a little bit easier using tiledlayout instead of subplot, plus it is easier to control the spacing between and around the tiles. Details on the spacing options are here
figure
tl = tiledlayout(2,2, 'TileSpacing', 'compact', 'Padding', 'compact');
nexttile
imagesc([0 1 0; 1 2 1; 0 1 0;])
nexttile
imagesc([0 1 0; 1 2 1; 0 1 0;])
nexttile
imagesc([0 1 0; 1 2 1; 0 1 0;])
nexttile
imagesc([0 1 0; 1 2 1; 0 1 0;])
cbh = colorbar;
cbh.Layout.Tile = 'east';

Sign in to comment.

More Answers (0)

Categories

Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!