Colorbar Causing mismatch in subfigure
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Zihad Azad
il 31 Dic 2019
Commentato: Zihad Azad
il 31 Dic 2019
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 Commenti
Risposta accettata
Image Analyst
il 31 Dic 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Subplots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!