Only last legend command is working while using multiple legend command using plotyy

1 visualizzazione (ultimi 30 giorni)
My code looks like this:
n=-180:180;
x=(pi/180).*n;
y=sin(x);
y2=sin(x).*cos(x);
y3=cos(x);
[ax h1 h2]=plotyy(n,y,n,y2)
h3=line(n,y3,'Color','r','LineWidth',2,'Parent',ax(1))
set(h1,'Color','k','LineStyle','-','LineWidth',1.0);
set(h2,'Color','b','LineStyle','-','LineWidth',1.5);
legend(ax(1),'h1','h3','Location','NorthEast')
legend(ax(2),{'h2'},'Location','NorthWest');
the last legend command is working
1.JPG
n=-180:180;
x=(pi/180).*n;
y=sin(x);
y2=sin(x).*cos(x);
y3=cos(x);
[ax h1 h2]=plotyy(n,y,n,y2)
h3=line(n,y3,'Color','r','LineWidth',2,'Parent',ax(1))
set(h1,'Color','k','LineStyle','-','LineWidth',1.0);
set(h2,'Color','b','LineStyle','-','LineWidth',1.5);
legend(ax(1),'h1','h3','Location','NorthEast')
% legend(ax(2),{'h2'},'Location','NorthWest');
but after disabling the last legend command
2.JPG
Please help how to keep both the legend boxes.

Risposta accettata

madhan ravi
madhan ravi il 25 Dic 2018
Use yyaxis:
n=-180:180;
x=(pi/180).*n;
y=sin(x);
y2=sin(x).*cos(x);
y3=cos(x);
yyaxis left
a=plot(n,y,'k')
legend('A')
yyaxis right
aa=plot(n,y2,'b')
hold on
aaa=plot(n,y3,'r')
legend([a aa aaa],{'A','B','C'})
Screen Shot 2018-12-25 at 11.32.24 PM.png
  1 Commento
Subhamoy Saha
Subhamoy Saha il 26 Dic 2018
Thanks for your help ravi. But the problem is I want to control the legend position individually, e.g., the legend '-A' will be at the 'NorthEast' and '-B', '-C' will be at 'NorthWest'. So basically what I understood that I have to use two different legend commands instead of one. And the problem appears as discussed in the main question.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Two y-axis in Help Center e File Exchange

Prodotti


Release

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by