Remove legend items from Figure

100 ビュー (過去 30 日間)
shdotcom shdotcom
shdotcom shdotcom 2019 年 1 月 25 日
コメント済み: shdotcom shdotcom 2019 年 1 月 25 日
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 Center および File Exchange2-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