Adjust legend position outside the figure layout

10 visualizzazioni (ultimi 30 giorni)
Wiqas Ahmad
Wiqas Ahmad il 18 Nov 2021
Commentato: Adam Danz il 22 Nov 2021
I want to positioned the legend outside in the center of the figure. I have tried the northoutside, northeastoutside and posiiton but didn't get the accurate results. I need your help to resolve this problem.
figure('name','Linearly polarization')
t = tiledlayout(1,4,'TileSpacing','Compact','Padding','Compact');
%Tile1
nexttile
hold on
plot(z,iLpara11,'-k','LineWidth',1.5);
plot(z,iLpara12,'-b','LineWidth',1.5);
plot(z,iLpara13,'-r','LineWidth',1.5);
plot(z,iLpara14,'-g','LineWidth',1.5);
hold on
%title('\fontname{Arial}Homogeneous water cloud');
legend('Case1','Case2','Case3','Case4','position',[.1 .1 .2 .2],'orientation','horizontal','Fontsize',11);
legend boxon
%set(gca,'yscale','log');
xlabel('\fontname{Arial}Height of the cloud(m)');
ylabel('\fontname{Arial}Backscattered signal(unit)');
set(gca,'color','w','Fontsize',10.5,'LineWidth',1,'Fontweight','normal');
set(gca,'box','on','boxstyle','full','Fontname','Arial','Fontsmoothing','on');
set(gca,'xlim',[2005 2155],'xtick',[2005:50:2155],'ylim',[0.*10.^-8 1.4.*10.^-8],'ytick',[0:.35:1.4].*10.^-8);
set(gca,'xgrid','on','ygrid','on','gridcolor','k');
%txt=text(2050,1.3.*10.^-8,'Linear polarization','Color','black','FontSize',11,'FontWeight','normal','FontName','Arial')
nIDs = 1;
alphabet = ('a':'z').';
chars = num2cell(alphabet(1:nIDs));
chars = chars.';
charlbl = strcat('(',chars,')'); % {'(a)','(b)','(c)','(d)'}
text(0.05,0.95,charlbl{1},'Units','normalized','FontSize',14);
%Tile2
nexttile
hold on
plot(z,iLperp11,'-k','LineWidth',1.5);
plot(z,iLperp12,'-b','LineWidth',1.5);
plot(z,iLperp13,'-r','LineWidth',1.5);
plot(z,iLperp14,'-g','LineWidth',1.5);
hold on
%title('\fontname{Arial}Homogeneous water cloud');
%legend('Case1','Case2','Case3','Case4','location','northoutside','orientation','horizontal','Fontsize',11);
%legend boxon
%set(gca,'yscale','log');
xlabel('\fontname{Arial}Height of the cloud(m)');
ylabel('\fontname{Arial}Backscattered signal(unit)');
set(gca,'color','w','Fontsize',10.5,'LineWidth',1,'Fontweight','normal');
set(gca,'box','on','boxstyle','full','Fontname','Arial','Fontsmoothing','on');
set(gca,'xlim',[2005 2155],'xtick',[2005:50:2155],'ylim',[0.*10.^-9 1.2.*10.^-9],'ytick',[0:0.3:1.2].*10.^-9);
set(gca,'xgrid','on','ygrid','on','gridcolor','k');
%txt=text(2050,1.12.*10.^-9,'Linear polarization','Color','black','FontSize',11,'FontWeight','normal','FontName','Arial')
nIDs = 2;
alphabet = ('a':'z').';
chars = num2cell(alphabet(1:nIDs));
chars = chars.';
charlbl = strcat('(',chars,')'); % {'(a)','(b)','(c)','(d)'}
text(0.05,0.95,charlbl{2},'Units','normalized','FontSize',14);
%Tile3
nexttile
hold on
plot(z,iCperp21,'-k','LineWidth',1.5);
plot(z,iCperp22,'-b','LineWidth',1.5);
plot(z,iCperp23,'-r','LineWidth',1.5);
plot(z,iCperp24,'-g','LineWidth',1.5);
hold on
%title('\fontname{Arial}Homogeneous water cloud');
%legend('Case1','Case2','Case3','Case4','location','northoutside','orientation','horizontal','Fontsize',11);
%legend boxon
%set(gca,'yscale','log');
xlabel('\fontname{Arial}Height of the cloud(m)');
ylabel('\fontname{Arial}Backscattered signal(unit)');
set(gca,'color','w','Fontsize',10.5,'LineWidth',1,'Fontweight','normal');
set(gca,'box','on','boxstyle','full','Fontname','Arial','Fontsmoothing','on');
set(gca,'xlim',[2005 2155],'xtick',[2005:50:2155],'ylim',[0.*10.^-8 1.4.*10.^-8],'ytick',[0:.35:1.4].*10.^-8);
set(gca,'xgrid','on','ygrid','on','gridcolor','k');
%txt=text(2050,1.3.*10.^-8,'Circular polarization','Color','black','FontSize',11,'FontWeight','normal','FontName','Arial')
nIDs = 3;
alphabet = ('a':'z').';
chars = num2cell(alphabet(1:nIDs));
chars = chars.';
charlbl = strcat('(',chars,')'); % {'(a)','(b)','(c)','(d)'}
text(0.05,0.95,charlbl{3},'Units','normalized','FontSize',14);
%Tile4
nexttile
hold on
plot(z,iCpara21,'-k','LineWidth',1.5);
plot(z,iCpara22,'-b','LineWidth',1.5);
plot(z,iCpara23,'-r','LineWidth',1.5);
plot(z,iCpara24,'-g','LineWidth',1.5);
hold on
%title('\fontname{Arial}Homogeneous water cloud');
xlabel('\fontname{Arial}Height of the cloud(m)');
%legend('Case1','Case2','Case3','Case4','location','southeast','FontSize',10);
%legend boxoff
%set(gca,'yscale','log');
xlabel('\fontname{Arial}Height of the cloud(m)');
ylabel('\fontname{Arial}Backscattered signal(unit)');
set(gca,'color','w','Fontsize',10.5,'LineWidth',1,'Fontweight','normal');
set(gca,'box','on','boxstyle','full','Fontname','Arial','Fontsmoothing','on');
set(gca,'xlim',[2005 2155],'xtick',[2005:50:2155],'ylim',[0.*10.^-9 2.5.*10.^-9],'ytick',[0:0.625:2.5].*10.^-9);
set(gca,'xgrid','on','ygrid','on','gridcolor','k');
%txt=text(2050,2.35.*10.^-9,'Circular polarization','Color','black','FontSize',11,'FontWeight','normal','FontName','Arial')
nIDs = 4;
alphabet = ('a':'z').';
chars = num2cell(alphabet(1:nIDs));
chars = chars.';
charlbl = strcat('(',chars,')'); % {'(a)','(b)','(c)','(d)'}
text(0.05,0.95,charlbl{4},'Units','normalized','FontSize',14);
% Enlarge figure to full screen.
%set(gcf, 'units','normalized','outerposition',[.3 .3 .6 .6]);
set(gcf, 'units','normalized','outerposition',[.2 .4 .65 .38]);
print(gcf,'figure.tiff','-dtiff','-r300');

Risposte (1)

Adam Danz
Adam Danz il 19 Nov 2021
Since you're using tiledLayout the best option is to specify the layout as shows in this example.
lh =legend(__);
lh.Layout.Tile = 'North'; % <----- relative to tiledlayout
  2 Commenti
Wiqas Ahmad
Wiqas Ahmad il 22 Nov 2021
Modificato: Wiqas Ahmad il 22 Nov 2021
I have found the answer. I'm using the R2019b in which the legend position is locked. Your answer is feasible with R2020b. Anyway thnak you for your attention.
Adam Danz
Adam Danz il 22 Nov 2021
In future questions, you can fill out the "release" field to indicate which Matlab release you'res using.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by