matlab上有什么方法可以调整legend的顺序

如题所述

你可以通过h = plot(___)的方法获得关于所画曲线的一个标志,然后在进行相关外理。

这个命令matlab中的解释是:h = plot(___) returns a column vector of chart line objects. Use h to modify a specific chart lines after it is created.


下面给你一个具体的例子吧:

x = 0:0.01:2*pi;
figure(1)
clf;
hold on;
h1 = plot(x,cos(x),'b-');
plot(x,x*0.1,'black-');
h2 = plot(x,sin(x),'g-');
legend([h1,h2],'cos(x)','sin(x)');


这个例子先后画了三条线,cos(x), 0.25*x,sin(x),但是由于使用了我上述的方法,所以可以只标注我画的第一、三条线,而忽略掉第二条线。


下面这张图就是最后的结果:


满意请采纳,谢谢。


答完了才发现问题已经被采纳了,感觉上面的有点局限,我这个也可以参考一下。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-24

思路:修改图形对应函数的顺序,来改legend顺序。


以y1=cos(t),y2=sin(t)为例,进行说明如下:

t=linspace(1,20,1000);

y1=cos(t);

y2=sin(t);

plot(t,y1,t,y2,'r');

legend('cos(t)','sin(t)');

结果


修改后,

t=linspace(1,20,1000);

y1=cos(t);

y2=sin(t);

plot(t,y2,t,y1,'r');

legend('sin(t)','cos(t)');


希望对你有帮助,欢迎交流!

本回答被提问者和网友采纳
第2个回答  2015-11-15
思路:修改图形对应函数的顺序,来改legend顺序。

以y1=cos(t),y2=sin(t)为例,进行说明如下:
t=linspace(1,20,1000);
y1=cos(t);
y2=sin(t);
plot(t,y1,t,y2,'r');
legend('cos(t)','sin(t)');
结果

修改后,
t=linspace(1,20,1000);
y1=cos(t);
y2=sin(t);
plot(t,y2,t,y1,'r');
legend('sin(t)','cos(t)');
第3个回答  2016-01-11
根据想要的legend顺序调整画图顺序, legend 上refresh就自动更新了
相似回答