Colorbar Causing mismatch in subfigure
1 view (last 30 days)
Show older comments
I have the folowing subplotting code
clc; clear all;
load zpos2;
load zpos3;% starts from -22nm (z=-204nm) as it stands
A=E';
l=l*1e9;z1=z1*1e9;
i=2;j=1;
h1=subplot(i,j,1);
p=pcolor(l,z1,A*1e15);
colormap(jet(50));
shading interp; % interpolate colors across lines and faces
xlim([770 900]);
ylim([-620 -100]);
set(gca,'Xticklabel',[]);
xticks([750 775 800 825 850 875 900]);
yticks([-526 -426 -326 -226 -126]);
title('(a)', 'FontSize', 16,'units','normalized','position',[.95 .85]); %gotta normalize the units to the figure window
yticklabels({'z=200','z=100','z=0','z=-100','z=-200',});
line([770, 900], [-326, -326], 'Color', 'black','linewidth',2.5,'LineStyle','--');
line([770, 900], [-426, -426], 'Color', 'black','linewidth',2.5,'LineStyle','--');
% line([875, 875], [-620, -100], 'Color', 'black','linewidth',2.5,'LineStyle','--');
set(h1, 'Units', 'normalized');
get(h1, 'Position');
set(h1,'Position',[ 0.18 0.54 0.63 0.4]);
%colorbar setting
c = colorbar;
%labels the colorbar vertically as desired
set(get(c,'label'),'string','Emission (a.u.)');
c.TickLength=.023;
c.Units='normalized';
c.FontSize=23;
h2=subplot(i,j,2);
plot(l,E1(:,2),'-',l,E1(:,3),'--',l,E1(:,4),':',l,E1(:,5),'-.',l,E1(:,6),'.','linewidth',2.5);
xlabel('Wavelength \rm(nm)'), ylabel('Emission \rm(a.u.)');
xlim([770 900]);
% line([875, 875], [-2, 4], 'Color', 'black','linewidth',2.5,'LineStyle','--');
title('(b)', 'FontSize', 16,'units','normalized','position',[.95 .85]);
legend({'z=-200nm','z=-100nm','z=0nm','z=100nm','z=200nm'},'Units','normalized','Position',[0.47 0.33 0.08 0.08],'FontSize',20);
set(h2, 'Units', 'normalized');
get(h2, 'Position')
set(h2,'Position',[ 0.18 0.13 0.63 0.4]);
legend boxoff;
%font properties
FS='Fontsize';
fs=20;
FN='Fontname';
fn='Times New Roman';
set(findall(gcf,'type','axes'),FS,fs,FN,fn);
set(findall(gcf,'type','text'),FS,fs,FN,fn);
set([h1,h2],'box','on');
set([h1,h2],'TickLength',[.011 .011]);
set(gcf,'renderer','painters');
grid off
But the colorbar is causing mismatch, like this:
With the colorbar absent, I get perfect match:
Is there anyway, I can add the colorbar separately after making the match? The files are attached herewith.
P.S: I know that maximizing the window solves this issue. But I need this window size for my paper. So please help
0 Comments
Accepted Answer
Image Analyst
on 31 Dec 2019
You can move the colorbar:
hcb = colorbar;
hcb.Position(1) = .8 % Move left edge of colorbar.
hcb.Position(3) = .08 % Adjust width of colorbar
Adjust as needed.
More Answers (0)
See Also
Categories
Find more on Subplots 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!