Legend in columns with different size markers than in plot

10 次查看(过去 30 天)
Hello,
I would like to increase the size of the markers OMLY in the legend of a plot. The legend is in 2 columns.
Here what I have:
%Data
x1=1:10;
m1= x1+1.8*rand(1,10);
m2=3+m1;
m3=5+m1;
m4=6+m1;
err1=1.2*rand(1,10);
err2=1.2*rand(1,10);
err3=1.2*rand(1,10);
err4=1.2*rand(1,10);
%Figure
f=figure;
errorbar(x1,m1,err1,'^','Color', 'g','MarkerFaceColor','g','MarkerSize',8,'LineWidth',2)
hold on
errorbar(x1,m2,err2,'s','MarkerFaceColor','r','Color','r','MarkerSize',8,'LineWidth',2)
errorbar(x1,m3,err3,'d','Color', 'k','MarkerFaceColor','k','MarkerSize',8,'LineWidth',2)
errorbar(x1,m4,err4,'o','MarkerFaceColor','b','Color','b','MarkerSize',8,'LineWidth',2)
%plot size, position and format
set(gcf,'position',[550,250,1000,600])
set(gca,'fontname','calibri','box','off','FontSize', 30)
set(gca,'LineWidth',1,'TickLength',[0.025 0.025]);
set(gcf,'color','w');
%Axis labeling and format
xlabel('\textbf{L, }{\boldmath $\mathrm{mm}$}','Interpreter','latex', 'FontSize', 32,'fontweight','bold')
ylabel({'{\boldmath$\mathrm{\overline{Q}, \ mJ}$}'},'Interpreter','latex', 'FontSize', 32,'fontweight','bold')
set(gca,'XMinorTick','on','YMinorTick','on')
legend('Type 1','Type 2','Type 3','Type 4','Location','northwest','FontSize', 32,'NumColumns',2,'Box','off');
% Fake plots for the legend (didn't work)
% h(1)=errorbar(nan,nan,nan,'^','Color', 'g','MarkerFaceColor','g','MarkerSize',20,'LineWidth',2, 'DisplayName', 'Type 1');
% h(2)=errorbar(nan,nan,nan,'s','MarkerFaceColor','r','Color','r','MarkerSize',20,'LineWidth',2, 'DisplayName', 'Type 2');
% h(3)=errorbar(nan,nan,nan,'d','Color', 'k','MarkerFaceColor','k','MarkerSize',20,'LineWidth',2, 'DisplayName', 'Type 3');
% h(4)=errorbar(nan,nan,nan,'o','MarkerFaceColor','b','Color','b','MarkerSize',20,'LineWidth',2, 'DisplayName', 'Type 4');
% legend(h,'Location','northwest','FontSize', 32,'NumColumns',2,'Box','off');
%Plot full window
T = get(gca,'tightinset');
set(gca,'position',[T(1) T(2) 1-T(1)-T(3) 1-T(2)-T(4)]);
hold off
I tried the classic trick:
f=figure;
t1=errorbar(x1,m1,err1,'^','Color', 'g','MarkerFaceColor','g','MarkerSize',8,'LineWidth',2);
hold on
t2=errorbar(x1,m2,err2,'s','MarkerFaceColor','r','Color','r','MarkerSize',8,'LineWidth',2);
t3=errorbar(x1,m3,err3,'d','Color', 'k','MarkerFaceColor','k','MarkerSize',8,'LineWidth',2);
t4=errorbar(x1,m4,err4,'o','MarkerFaceColor','b','Color','b','MarkerSize',8,'LineWidth',2);
%plot size, position and format
set(gcf,'position',[550,250,1000,600])
set(gca,'fontname','calibri','box','off','FontSize', 30)
set(gca,'LineWidth',1,'TickLength',[0.025 0.025]);
set(gcf,'color','w');
%Axis labeling and format
xlabel('\textbf{L, }{\boldmath $\mathrm{mm}$}','Interpreter','latex', 'FontSize', 32,'fontweight','bold')
ylabel({'{\boldmath$\mathrm{\overline{Q}, \ mJ}$}'},'Interpreter','latex', 'FontSize', 32,'fontweight','bold')
set(gca,'XMinorTick','on','YMinorTick','on')
legend('Type 1','Type 2','Type 3','Type 4','Location','northwest','FontSize', 32,'NumColumns',2,'Box','off');
[h,icons,plots,legend_text] =legend([t1 t3 t2 t4],'Location','northwest','FontSize', 30,'NumColumns',2,'Box','off');
icons = findobj(icons, 'type', 'line');
set(icons, 'Markersize', 15);
But the legent is in one column. The one column problem appear every time I have x=legend(). Also the errorbar in the legent dissapear.
Also as you see in my code I tried to create fake plots to use these in the legend, but also didn't work. Any ideas?
Thank you in advance.

采纳的回答

Evangelos Stefanidis
编辑:Evangelos Stefanidis 2022-1-29
Well I found a way to work around the problem. I made the whole plot smaller and the markers of the legend get bigger. So the new program is:
%Data
x1=1:10;
m1= x1+1.8*rand(1,10);
m2=3+m1;
m3=5+m1;
m4=6+m1;
err1=1.2*rand(1,10);
err2=1.2*rand(1,10);
err3=1.2*rand(1,10);
err4=1.2*rand(1,10);
%Figure
f=figure;
t1=errorbar(x1,m1,err1,'^','Color', 'g','MarkerFaceColor','g','MarkerSize',8,'LineWidth',2,'DisplayName','Type 1');
hold on
t2=errorbar(x1,m2,err2,'s','MarkerFaceColor','r','Color','r','MarkerSize',8,'LineWidth',2,'DisplayName','Type 2');
t3=errorbar(x1,m3,err3,'d','Color', 'k','MarkerFaceColor','k','MarkerSize',8,'LineWidth',2,'DisplayName','Type 3');
t4=errorbar(x1,m4,err4,'o','MarkerFaceColor','b','Color','b','MarkerSize',8,'LineWidth',2,'DisplayName','Type 4');
%plot size, position and format
set(gcf,'position',[550,250,705,408])
set(gca,'fontname','calibri','box','off','FontSize', 22)
set(gca,'LineWidth',1,'TickLength',[0.025 0.025]);
set(gcf,'color','w');
%Axis labeling and format
xlabel('\textbf{L, }{\boldmath $\mathrm{mm}$}','Interpreter','latex', 'FontSize', 24,'fontweight','bold')
ylabel({'{\boldmath$\mathrm{\overline{Q}, \ mJ}$}'},'Interpreter','latex', 'FontSize', 24,'fontweight','bold')
set(gca,'XMinorTick','on','YMinorTick','on')
legend([t1,t2,t3,t4],'Location','northwest','FontSize', 24,'NumColumns',2,'Box','off');
%Plot full window
T = get(gca,'tightinset');
set(gca,'position',[T(1) T(2) 1-T(1)-T(3) 1-T(2)-T(4)]);
hold off

更多回答(0 个)

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by