Azzera filtri
Azzera filtri

how can i get same color graph in each iteration of for loop?

41 visualizzazioni (ultimi 30 giorni)
In my Matlab code, I am trying to merge two graphs in each iteration of for loop. I want the color of graph generated to be same for an iteration, but varying color with iteration

Risposta accettata

Birdman
Birdman il 7 Feb 2018
One approach, notice how I used color property of plot:
x=1:10;
y=2*x;
for i=1:numel(x)
a=rand(1,3);
plot(x(i),y(i),'Marker','o','color',a);hold on;plot(x(i)+1,y(i),'Marker','o','color',a);hold on;
end
  3 Commenti
Birdman
Birdman il 7 Feb 2018
Change this line
plot(x(i),y(i),'Marker','o','color',a);hold on;plot(x(i)+1,y(i),'Marker','o','color',a);hold on;
to
plot(x(i),y(i),'Marker','o','color',a,'DisplayName',num2str(i));hold on;plot(x(i)+1,y(i),'Marker','o','color',a,'DisplayName',num2str(i));hold on;legend('show');
Giovanni Bambini
Giovanni Bambini il 5 Apr 2023
Is there a way to simply save information of colors form plot, or reset the "Matlab color ordering"?

Accedi per commentare.

Più risposte (2)

Christopher Coello
Christopher Coello il 7 Feb 2018
Use the property Color when you plot the figure and the colormap of your choice (parula post 2014b, jet before)
g = randn(12,150);
h = randn(12,150)+5;
figure;c_map = parula(12);
for iR = 1:12
hAx=subplot(4,3,iR);hold(hAx,'on');
plot(g(iR,:),'Color',c_map(iR,:));
plot(h(iR,:),'Color',c_map(iR,:));
end

Sree Harsha Bhimineni
Sree Harsha Bhimineni il 20 Giu 2021
You can use a random function as follows:
for i=1:1:10
v = rand(3,1);
plot(X1,Y1,'Color',v);
hold on
plot(X2,Y2,'Color',v);
end

Community Treasure Hunt

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

Start Hunting!

Translated by