resize and define the position of the colorbar

62 visualizzazioni (ultimi 30 giorni)
Hello,
I need to resize and define the position of the colorbar.
This is my code:
ax3 = subplot(2,3,2);
ibg2 = imagesc(scene);
axis off
hold on
iim2 = imagesc(im,'XData',[16 466],'YData',[104 484]);
caxis([0 3])
iim2.AlphaData = 0.75*ones(size(im));
iim2.AlphaData(isnan(im)) = 0;
colorbar
colormap parula
caxis([0 3])
cb = colorbar;
set(cb,'position',[.10 .1 .1 .1])
This is the graph i get :
I need to place the color bar in the blue box (see figure)?
Thanks,

Risposta accettata

Cris LaPierre
Cris LaPierre il 12 Nov 2020
Your position argument is relative to the entire figure, not the plot. Adjust it to be what you want it to be.
Also, including target axes might help.
scene = imread('peppers.png');
im = imread("cameraman.tif");
ax3 = subplot(2,3,2);
ibg2 = imagesc(scene);
axis off
hold on
iim2 = imagesc(ax3,im,'XData',[16 466],'YData',[104 484]);
hold off
iim2.AlphaData = 0.75*ones(size(im));
iim2.AlphaData(isnan(im)) = 0;
colormap parula
caxis([0 3])
cb = colorbar(ax3);
cb.Position = [.45 .6 .05 .1];
  2 Commenti
Haythem Zouabi
Haythem Zouabi il 12 Nov 2020
Is there any way to automatise the position of the colorbar with different images placed at different position?
Note that i always need to place the colorbar at the bottom-left corner of a given image.
Thanks,
Cris LaPierre
Cris LaPierre il 12 Nov 2020
I had some success with the 'Location' setting.
scene = imread('peppers.png');
im = imread("cameraman.tif");
subplot(2,3,2);
imagesc(scene);
axis off
cb = colorbar('west');
cb.Position = cb.Position .* [1 1 1 .5];
subplot(2,3,4);
imagesc(im);
axis off
cb = colorbar('west');
cb.Position = cb.Position .* [1 1 1 .5];

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Color and Styling in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by