is there any way to put two plots in one legend entry?

49 次查看(过去 30 天)
is it possible to combine multiple plots in one legend entry as shown in the picture? . I tried various operations with [] and () but it didn't work.
Is there a way to put two plots in one legend entry?

采纳的回答

Walter Roberson
Walter Roberson 2019-9-18
That happens automatically unless you do one of the following:
  • call legend with a single legend entry, such as inside a loop or trying to place the legend call for each plot() right after the associated plot(); or call legend passing in only one graphics object handle
Some of the approaches that work are:
A)
for K = 1 : 6
this_x = something(K,:);
this_y = someother(K,:);
thislegend = sprintf('R%d', K); %construct a legend string
legends{K} = thislegend; %record it
plot(this_x, this_y);
hold on
end
legend(legends);
B)
for K = 1 : 6
this_x = something(K,:);
this_y = someother(K,:);
thislegend = sprintf('R%d', K); %construct a legend string
legends{K} = thislegend; %record it
linehandles(K) = plot(this_x, this_y);
hold on
end
legend(linehandles, legends);
C)
for K = 1 : 6
this_x = something(K,:);
this_y = someother(K,:);
thislegend = sprintf('R%d', K); %construct a legend string
linehandles(K) = plot(this_x, this_y, 'DisplayName', thislegend);
hold on
end
legend(linehandles, 'show');
D)
for K = 1 : 6
this_x = something(K,:);
this_y = someother(K,:);
plot(this_x, this_y);
hold on
end
legend({'R1', 'R2', 'R3', 'R4', 'R5', 'R6'});

更多回答(1 个)

Fuad Nammas
Fuad Nammas 2019-9-18
编辑:Fuad Nammas 2019-9-18
thanks Walter Roberson but what i am asking is:
Can I put the same colored curve (please check my pic) with the the same legend.i.e., two black curves with legend R3 and the two blue curves with legend R2, etc....
I appreciate your efforts dear.
also, below you will see my matlab code
aB=9.8*10.^(-9);
q=1.6*10.^(-19);
me=0.067*9.1*10.^(-31);
h=1.0545*10.^(-34);
kb=1.38*10.^(-23);
om1=3*10.^(12);
om2=0;
B=2;
c=q./(2*pi);
R1=aB;
R2=1.2*aB;
R3=1.4*aB;
w01=h./(((me*R1.^2*(sqrt(2*pi)))));
w02=h./(((me*R2.^2*(sqrt(2*pi)))));
w03=h./(((me*R3.^2*(sqrt(2*pi)))));
T=1:1:80;
wc=q*B/me;
y=sinh(0.5.*h.*wc./(kb.*T));
w1=sqrt(w01.^2+0.25*wc.^2);
w2=sqrt(w02.^2+0.25*wc.^2);
w3=sqrt(w03.^2+0.25*wc.^2);
om01=sqrt(w1.^2-om1.^2);
om02=sqrt(w2.^2-om1.^2);
om03=sqrt(w3.^2-om1.^2);
Icm1=c.*w1.*y./sinh(h.*w1./(kb.*T))-0.5.*c.*wc;
Irel1=c.*om01.*y./sinh(h.*om01./(kb.*T))-0.5.*c.*wc;
I1=Icm1+Irel1;
Icm2=c.*w2.*y./sinh(h.*w2./(kb.*T))-0.5.*c.*wc;
Irel2=c.*om02.*y./sinh(h.*om02./(kb.*T))-0.5.*c.*wc;
I2=Icm2+Irel2;
Icm3=c.*w3.*y./sinh(h.*w3./(kb.*T))-0.5.*c.*wc;
Irel3=c.*om03.*y./sinh(h.*om03./(kb.*T))-0.5.*c.*wc;
I3=Icm3+Irel3;
om011=sqrt(w1.^2-om2.^2);
om022=sqrt(w2.^2-om2.^2);
om033=sqrt(w3.^2-om2.^2);
Icm11=c.*w1.*y./sinh(h.*w1./(kb.*T))-0.5.*c.*wc;
Irel11=c.*om011.*y./sinh(h.*om011./(kb.*T))-0.5.*c.*wc;
I11=Icm11+Irel11;
Icm22=c.*w2.*y./sinh(h.*w2./(kb.*T))-0.5.*c.*wc;
Irel22=c.*om022.*y./sinh(h.*om022./(kb.*T))-0.5.*c.*wc;
I22=Icm22+Irel22;
Icm33=c.*w3.*y./sinh(h.*w3./(kb.*T))-0.5.*c.*wc;
Irel33=c.*om033.*y./sinh(h.*om033./(kb.*T))-0.5.*c.*wc;
I33=Icm33+Irel33;
nm=1*10.^(-9);
plot(T,I1/nm,'r',T,I11/nm,'--r',T,I2/nm,'b',T,I22/nm,'--b',T,I3/nm,'k',T,I33/nm,'--k')
legend('R_1=a_B','R_1=a_B','R_2=1.2a_B','R_2=1.2a_B','R_3=1.4a_B','R_3=1.4a_B')
xlabel('T(K)')
ylabel('I (nA)')
  2 个评论
Walter Roberson
Walter Roberson 2019-9-19
h = plot(T,I1/nm,'r',T,I11/nm,'--r',T,I2/nm,'b',T,I22/nm,'--b',T,I3/nm,'k',T,I33/nm,'--k');
legend(h(1:2:end), {'R_1=a_B','R_2=1.2a_B','R_3=1.4a_B'})

请先登录,再进行评论。

类别

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