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

 Respuesta aceptada

Kelly Kearney
Kelly Kearney el 23 de Oct. de 2015

0 votos

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 comentarios

Mahesh
Mahesh el 23 de Oct. de 2015
Thanks Kelly But the handles may be different as udClass and N are not equal. Let me try..
Thanks
Mahesh
Mahesh
Mahesh el 23 de Oct. de 2015
Thanks a lot Kelly!! It worked...

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Etiquetas

Preguntada:

el 23 de Oct. de 2015

Comentada:

el 23 de Oct. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by