Построение множества графиков с разными и различимыми цветами - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть этот цикл прорисовки, и я хочу назначить ему разные цвета.Теперь он рассматривает только те цвета, которые ему нужны.Таким образом, когда N увеличивается, цвета некоторых графиков совпадают.Так что различать их очень сложно.Как я могу выделить разные цвета для разных графиков?

N=24 и является числом графиков.

for i=1:N 
    plot(time(1:350),STDX(1:350,i),'lineWidth',3) 
hold on 
end

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Давайте определим некоторые примерные значения, поскольку вы не предоставили никаких:

N = 24;
time = linspace(0, 5, 350).';
STDX = cos(bsxfun(@times, time, linspace(0, 1, N))); % example values

В последних версиях Matlab вам нужно только установить свойство 'ColorOrder' оси по желанию, а затем построить график:

set(gca, 'ColorOrder', parula(24)) % set ColorOrder property of the axis
hold on 
for ii = 1:N 
    plot(time(1:350), STDX(1:350, ii), 'lineWidth', 3) 
end

Обратите внимание, что вы можете избавиться от цикла и просто использовать

set(gca, 'ColorOrder', parula(24)) % set ColorOrder property of the axis
hold on
plot(time, STDX, 'lineWidth', 3)

, который автоматически строит каждый столбецSTDX с другим цветом.Для этого по-прежнему требуется hold on, чтобы при вызове plot не сбрасывалось свойство 'ColorOrder'.

enter image description here

0 голосов
/ 25 апреля 2018

Вы можете сделать массив ячеек нужных вам цветов, а затем установить цвет графика внутри цикла с этими цветами.Вот пример:

C = {'k','b','r','g','y',[.5 .6 .7],[.8 .2 .6]}; % Cell array of colors
figure;
x = 0:.01:1;
hold on
for i=1:7
   plot(x,x.^i,'color',C{i});
end

Пример вывода: enter image description here

...