Dear all, I would like to insert legend inside the for loop plot. In this plot same class repeated many times. I want to display one categorry at a time.
for i = 1:udClass
Legend{i} = ['Class' int2str(i)];
end
for i = 1:N
idClass = classVec(i);
plot(X(:,i), 'color', colors(idClass,:))
x = floor(ndata/2);
y = 1- (i-1)/N;
text(x, y, int2str(i), 'color', colors(idClass,:), 'VerticalAlignment', 'top',...
'HorizontalAlignment','center','FontSize',8)
end
legend(Legend, 'Location', 'Southeast');
With this code I got like shown
in which I got color repeated for different classes but I want each class with assigned colors. Could you please help me in this regard. Thanks

 採用された回答

Kelly Kearney
Kelly Kearney 2015 年 10 月 23 日

0 投票

Save the handles of your plotted lines, then pass the specific handles of lines with a unique class to the legend command:
for i = 1:udClass
Legend{i} = ['Class' int2str(i)];
end
h = gobjects(N,1); % h = zeros(N,1) if R2014a or earlier
for i = 1:N
idClass = classVec(i);
h(i) = plot(X(:,i), 'color', colors(idClass,:))
x = floor(ndata/2);
y = 1- (i-1)/N;
text(x, y, int2str(i), 'color', colors(idClass,:), 'VerticalAlignment', 'top',...
'HorizontalAlignment','center','FontSize',8)
end
[~,idx] = unique(classVec);
legend(h(idx), Legend, 'Location', 'Southeast');

2 件のコメント

Mahesh
Mahesh 2015 年 10 月 23 日
Thanks Kelly But the handles may be different as udClass and N are not equal. Let me try..
Thanks
Mahesh
Mahesh
Mahesh 2015 年 10 月 23 日
Thanks a lot Kelly!! It worked...

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

タグ

質問済み:

2015 年 10 月 23 日

コメント済み:

2015 年 10 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by