График из цикла for и легенда из одного цикла не соответствуют цветам. Как я могу сделать, чтобы они соответствовали. МАТЛАБ

for j= 1:numfiles;
   plot(A(j,:))
   legendmatrix{j,1}=strcat('Run',num2str(j))
   hold all
end
legend(legendmatrix)

hold all позволяет мне иметь разные цвета для всех моих кривых. Однако, когда я использую строки из strcat и отображаю их на графике, используется недостаточно цветов, и они не назначаются соответствующей кривой.

В этом случае сюжет 1 запускается 1 в легенде и т. д., и я хочу, чтобы цвета совпадали.


person Abid    schedule 18.08.2011    source источник


Ответы (2)


Вот немного другой пример:

%# sample data
N = 7;
A = rand(N,10);
x = 1:10;

%# plot each with a specific color
hold on
clr = lines(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

скриншот

Обратите внимание, что если N>7, цветовая карта LINES начнет повторяться. цветов, но вы всегда можете указать свой собственный набор цветов... У вас также есть возможность использовать различные маркеры и стили линий для получения более визуально различимых данных.

person Amro    schedule 18.08.2011

Использовал приведенный ниже пример Amros и упростил данные для визуализации концепции, а вместо этого использовал цветовую карту струи для поддержки более 7 различных цветов:

%# sample data
N = 15;

x = 1:10;

A = rand(N,10)./2;
A = A + repmat((1:N)',1,10);

%# plot each with a specific color
hold on
clr = jet(N);    %# LINES colormap
for j=1:N
   plot(x, A(j,:), 'Color',clr(j,:))
end
hold off

%# add legend
str = cellstr( num2str((1:N)','Run%d') );
legend(str)

Как видно из результатов, легенда верна, и вы можете построить гораздо больше линий: введите описание изображения здесь

person Vidar    schedule 18.08.2011
comment
Большое спасибо вам обоим! - person Abid; 19.08.2011