Question related to pcolor bar and its position

3 visualizzazioni (ultimi 30 giorni)
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!!

Risposta accettata

Jacob Ward
Jacob Ward il 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 Commento
Les Beckham
Les Beckham il 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';

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by