How to make one colorbar for all subplots?

Hi everybody
So I made a plot with four subplots (2x2). Now I would like to insert one (big) colorbar on the right Hand side of the four plots without changing the size of any of the plots. Somehow I only manage to make a bar for one subplot...
Cheers Ronny

 Respuesta aceptada

Star Strider
Star Strider el 2 de Ag. de 2014

3 votos

I assume you’ve already discovered the colorbar function. See Axis Properties for a description of the properties you can set. The location property applies only to colorbars and legends, not to axes.

4 comentarios

Ronny
Ronny el 2 de Ag. de 2014
Editada: Ronny el 2 de Ag. de 2014
Yeah I know. However if I set the colorbar like this it's always in respective to the first of the subplots. What I want is one big colorbar on the right side of all the fore plots...
See if this does what you want:
x = linspace(0,10,1000);
y = [sin(x); sin(2*x); sin(3*x); sin(4*x)];
figure(1)
for k1 = 1:4
subplot(2,2,k1)
plot(x,y(k1,:))
grid on
end
hp4 = get(subplot(2,2,4),'Position')
colorbar('Position', [hp4(1)+hp4(3)+0.01 hp4(2) 0.1 hp4(2)+hp4(3)*2.1])
You may have to experiment a bit to get it to work exactly as you want with your plot, but it works with this one. The 2.1 factor is a slight fudge, since various combinations of the 'Position' values for subplot(2,2,2) and subplot(2,2,4) didn’t work satisfactorily for me.
Shan  Chu
Shan Chu el 13 de Feb. de 2020
Please help.
Thanks
冠中 王
冠中 王 el 6 de Abr. de 2022
For matlab 2019b or after, Create tiled chart layout - MATLAB tiledlayout (mathworks.com) also works and it is easier.

Iniciar sesión para comentar.

Más respuestas (2)

Ronny
Ronny el 3 de Ag. de 2014

1 voto

Thanks that works

1 comentario

Star Strider
Star Strider el 3 de Ag. de 2014
My pleasure!
You can adjust its left edge position by increasing or decreasing the 0.01 in the first element of the 'Position' vector, and its width by adjusting the third element of the vector.

Iniciar sesión para comentar.

Emmanouil Barmpounakis
Emmanouil Barmpounakis el 25 de Abr. de 2017

1 voto

I came up with the Star Strider's solution but by using the Edit plot function. I found it easier to do it manually, rather than changing the 'Position' vector.tor.

Etiquetas

Preguntada:

el 2 de Ag. de 2014

Comentada:

el 6 de Abr. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by