Adding different colorbars to each row of subplots? Removing subplot axes? Decrease subplot spacing?

7 次查看(过去 30 天)
I am having a hardtime figuring out how to do a few things to a subplot. I will list them below:
  1. COLORBAR: When I try to add colorbars to each row of subplots in a 4x5 subplot figure (see image attached), It adds all the colorbars to the lower right corner. Two things wrong with this... 1) i need one colorbar for each row corresponding to that particular color. 2) I would like the colorbar to be outside of the subplot so that each subplot is the same shape. I indicated this on the attached image with the black markings.
  2. AXES: I would like to remove the y axes from each subplot except for the one on the left side (column 1). Similarly, I'd like to remove the x axis from each subplot except for the bottom (row 5).
  3. SPACING: I would like to decrease the spacing in between each subplot.
I included a more simplified version of my code below. Thanks so much in advance.
count = 0;
ax = zeros(4,5);
for i = 1:length(cells)
for k = 1:length(Sess)
count = count+1
ax(i,k) = subplot(4,5,count);
imagesc(CSbyShut); hold on;
set(gca,'XTick',0:150:600);
xticklabels({'-5','0','10','15','20'})
caxis([-5 15])
set(gcf, 'Position', [100, 100, 1500, 800])
xline(150,'-r');xline(450,'-r');
end
end
for t = [1,5,9,13,17]
colormap(ax(t),Map.blackmap);colorbar;
end
for t = [2,6,10,14,18]
colormap(ax(t),Map.bluemap);colorbar;
end
for t = [3,7,11,15,19]
colormap(ax(t),Map.greenmap);colorbar;
end
for t = [4,8,12,16,20]
colormap(ax(t),Map.redmap);colorbar;
end

采纳的回答

Srivardhan Gadila
Srivardhan Gadila 2020-5-27
The following code might help you w.r.t the points 1. COLORBAR(Changing the Position (position: [left bottom width height]) property of the colobar) & 2. AXES (Axes Properties - Ticks)
close all
count = 0;
for i = 1:4
for k = 1:5
count = count+1
ax(i,k) = subplot(4,5,count);
% imagesc(CSbyShut);
hold on;
set(gca,'XTick',0:150:600);
xticklabels({'-5','0','10','15','20'})
caxis([-5 15])
set(gcf, 'Position', [100, 100, 1500, 800])
xline(150,'-r');xline(450,'-r');
if i~= 4
set(gca,'XTick',[])
end
if k~=1
set(gca,'YTick',[])
end
end
end
colormap(ax(1,5),'parula');
pos = get(subplot(4,5,5),'Position')
h = colorbar('Position', [pos(1)+pos(3)+0.02 pos(2) pos(3)/10 pos(4)]);
c2 = colormap(ax(2,5),'jet');
pos = get(subplot(4,5,10),'Position')
h = colorbar('Position', [pos(1)+pos(3)+0.02 pos(2) pos(3)/10 pos(4)]);
c3 = colormap(ax(3,5),'gray');
pos = get(subplot(4,5,15),'Position')
h = colorbar('Position', [pos(1)+pos(3)+0.02 pos(2) pos(3)/10 pos(4)]);
c4 = colormap(ax(4,5),'pink');
pos = get(subplot(4,5,20),'Position')
h = colorbar('Position', [pos(1)+pos(3)+0.02 pos(2) pos(3)/10 pos(4)]);
Regarding reducing the space between adjacent subplots you can make use of the resources in the following page: "tight subplot" MathWorks Help Center

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Orange 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by