Filter löschen
Filter löschen

Use the same color multiple times in a plotting loop

38 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)

Community Treasure Hunt

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

Start Hunting!

Translated by