Remove legend items from Figure

51 次查看(过去 30 天)
In the figure, how to remove the item "aa" from the legennd without changing the shape of other items?
PointStyle = {'kp-', ...
'LineWidth', 1,...
'MarkerEdgeColor', 'k',...
'MarkerFaceColor', [0 0 .8],...
'MarkerSize',9};
plot(Points, PointStyle{:});
hold on
dataStyle = {'Marker','o', ...
'LineWidth', 1,...
'MarkerEdgeColor', [.8 0.4 0.2],...
'MarkerFaceColor', [1 .6 0.2],...
'MarkerSize',7};
plot(data, dataStyle{:});
if n <=3
%toDO
else
legend_str = {'aa','bb','cc'};
legend(legend_str, 'Fontsize',10,'Location', 'southoutside', 'Orientation','horizontal');
end
if n <=3
%toDO
else
legend_str = {'aa','bb','cc'};
legend(legend_str{2}, legend_str{3}, 'Fontsize',10,'Location', 'southoutside', 'Orientation','horizontal');
end
The shape of third item "cc" is changed:
  3 个评论
shdotcom shdotcom
shdotcom shdotcom 2019-1-25
编辑:shdotcom shdotcom 2019-1-25
@madhan ravi Is it possible to do this without using figure handle?
Also, in my case , the dimensions of plots are not consistent.
I have edited the question
madhan ravi
madhan ravi 2019-1-25
Ok see this example , see if this is what you want:
plot(1:10,'-*r')
hold on
plot(2*(1:10),'-vg')
plot(3*(1:10),'-ob')
h=get(gca,'Children'); % grab all the axes handles at once
legendstr={'aa','bb','cc'};
legend(h([1 3]),legendstr{[1 3]}) % see the second label is skipped withoud changing shape
hold off

请先登录,再进行评论。

采纳的回答

Lucademicus
Lucademicus 2019-1-25
You could do it based on the order of appearance of the plots.
Assuming 'aa' is plot first, then 'bb' and then 'cc':
figure;
hold on
plot(rand(4,1),rand(4,1),'r','DisplayName','Red')
plot(rand(4,1),rand(4,1),'g','DisplayName','Green')
plot(rand(4,1),rand(4,1),'b','DisplayName','Blue')
hPlots = flip(findall(gcf,'Type','Line')); % flipped, because the lines our found in reverse order of appearance.
legend_str = {'aa','bb','cc'};
legend(hPlots(2:3), legend_str(2:3), 'Fontsize',10,'Location', 'southoutside', 'Orientation','horizontal');
  1 个评论
shdotcom shdotcom
shdotcom shdotcom 2019-1-25
It is working!. Thank you. But, I could not undestand why my code is working when data size is [10,100] and it does not, when data size [5,200].

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by