Legend in for loop
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Kelly Kearney
2015-10-23
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');
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!