matlab为多个数据添加单个图例

时间:2018-01-09 04:39:20

标签: matlab plot legend

figure(1);
hold on;
na=4;
circle_X = [0 0 5 5]'; 
circle_Y = [0 3 0 3]';

for a = 1:na
        r=0.3;                               
        N=100;                            
        theta=linspace(0, 2*pi, N); 
        cx=r*cos(theta)+circle_X(a); 
        cy=r*sin(theta)+circle_Y(a);  
       plot3(cx , cy, 300*ones(N), 'r', 'linewidth', 2,'DisplayName',sprintf('circle'));     
end
legend('show');

我想绘制4个圆圈并添加一个图例' circle'一次指示4个圆圈,不使用"图例('圆')"。 目前传说看起来像这样 enter image description here

我该如何更改代码?

1 个答案:

答案 0 :(得分:2)

首先,你不需要plot3,你可以用plot获得相同的数字,可能因为这个长篇传说。 只需将情节线改为:

plot(cx , cy, 'r', 'linewidth', 2,'DisplayName','circle'); 

现在,图例将有4个条目,因为您绘制了四个对象。如果你想要一个条目,你有一些方法:

  1. if语句后,在循环内添加图例。例如,

    if a==1 , legend('show'); end

  2. 为您的情节获取句柄,而传奇只是其中之一。它可以直接从legend完成,但是您需要指定字符串:

    for.... h(a)=plot... end legend(h(1),'circle')

  3. 获取第2部分中的句柄,如果您不想指定字符串' circle',则可以使用未记录的hasbehavior

    for... h(a)=plot... end hasbehavior(h(2),'legend',false); hasbehavior(h(3),'legend',false); hasbehavior(h(4),'legend',false); l=legend('show');