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

1 次查看(过去 30 天)
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.

采纳的回答

madhan ravi
madhan ravi 2018-12-25
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 个评论
Subhamoy Saha
Subhamoy Saha 2018-12-26
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Two y-axis 的更多信息

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by