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个圆圈,不使用"图例('圆')"。 目前传说看起来像这样
我该如何更改代码?
答案 0 :(得分:2)
首先,你不需要plot3
,你可以用plot
获得相同的数字,可能因为这个长篇传说。
只需将情节线改为:
plot(cx , cy, 'r', 'linewidth', 2,'DisplayName','circle');
现在,图例将有4个条目,因为您绘制了四个对象。如果你想要一个条目,你有一些方法:
在if
语句后,在循环内添加图例。例如,
if a==1 ,
legend('show');
end
为您的情节获取句柄,而传奇只是其中之一。它可以直接从legend
完成,但是您需要指定字符串:
for....
h(a)=plot...
end
legend(h(1),'circle')
获取第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');