Сюжет из цикла и легенда из одного цикла не соответствуют цветам. Как я могу их соответствовать. MATLAB - PullRequest
0 голосов
/ 18 августа 2011
for j= 1:numfiles;
   plot(A(j,:))
   legendmatrix{j,1}=strcat('Run',num2str(j))
   hold all
end
legend(legendmatrix)

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

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

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Использовал приведенный ниже пример Amros и упростил данные для визуализации концепции, а вместо этого использовал цветовую карту Jet для поддержки более 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)

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

0 голосов
/ 18 августа 2011

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

%# 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)

screenshot

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

...