Use the same color multiple times in a plotting loop

13 Ansichten (letzte 30 Tage)
Ralf Niemann
Ralf Niemann am 23 Jul. 2013
Hello everyone,
I have a problem with a plotting loop, where I am plotting the spectral data and following the fit. For the reason of clarity I want to have them both in the same color, however matlab switches to the next color in order. Can anyone give me hint how to avoid this?
Ralf
  3 Kommentare
Ralf Niemann
Ralf Niemann am 24 Jul. 2013
exactly that. I hope this makes my problem more clear:
folder=dir('*.csv');
for i=1:length(folder)
file=folder(i,1).name;
A=csvread(file);
plot(A(:,1),A(:,2));
hold all
f(:,1)=A(:,1);
f(:,2)=smooth(A(:,2),0.01,'lowess');
plot(f(:,1),f(:,2),'--');
end
Ralf Niemann
Ralf Niemann am 24 Jul. 2013
problem solved:
folder=dir('*.csv');
cc=lines(length(folder));
for i=1:length(folder)
file=folder(i,1).name;
A=csvread(file);
plot(A(:,1),A(:,2),'Color',cc(i,:));
hold all
f(:,1)=A(:,1);
f(:,2)=smooth(A(:,2),0.01,'lowess');
plot(f(:,1),f(:,2),'Color',cc(i,:),'--');
end

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Narges M
Narges M am 24 Jul. 2013
Bearbeitet: Narges M am 24 Jul. 2013
You could use a colormap such as HSV to generate a set of colors. For example:
folder=dir('*.csv');
N = length(folder);
col=hsv(N);
for i=1:N
file=folder(i,1).name;
A=csvread(file);
plot(A(:,1),A(:,2),'color',col(i,:));
hold all
f(:,1)=A(:,1);
f(:,2)=smooth(A(:,2),0.01,'lowess');
plot(f(:,1),f(:,2),'--','color',col(i,:));
end

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by