is it possible to increment color and markers automatically for a plot in a loop?

60 visualizaciones (últimos 30 días)
I want to use a loop to plot a series of datasets eg
for jj=1:numel(data)
plot(data{jj}(:,1),data{jj}(:,2),[Marker Color])
end
I'd like to know if there is a built-in function that I could use in my plot command so that Color and Marker are automatically incremented and that at the end of the day each dataset has a different marker/color.
I could do this
markers = {'+','o','*','.','x','s','d','^','v','>','<','p','h'}
and then access it this way:
markers{mod(i,numel(markers))+1}
and something similar for the colors but it's kind of ugly
any comments ?
  1 comentario
Ali
Ali el 29 de Oct. de 2017
if true
--------------------------------------------------- code start
This is an example for your case
Input is "Input_Data", two dimension matrix
Marker_Counter=1;
figure6=figure;
Markers = {'+','o','*','x','v','d','^','s','>','<'};
for i=1:10:size(Input_Data,1)
TPR=Input_Data(i:i+9,7);
FPR=Input_Data(i:i+9,8);
plot(FPR,TPR,strcat('-',Markers{Marker_Counter}));
Marker_Counter=Marker_Counter+1;
hold on
end
plot([0.5 1],[0.5 1],'--');
legend('Minpts = 100','Minpts = 200','Minpts = 300','Minpts = 400','Minpts = 500','Minpts = 600','Minpts = 700','Minpts = 800','Minpts = 900','Minpts = 1000','','Location','SouthEast');
xlabel('FPR or (1-Specificity)','FontSize',12,'FontWeight','bold'); ylabel('TPR or Spensitivity)','FontSize',12,'FontWeight','bold');
title('ROC Space');
close(gcf);
-------------------------------------------- code end
end
--------------------------------------- picture link preview

Iniciar sesión para comentar.

Respuesta aceptada

MM
MM el 25 de Sept. de 2012
In fact I think what really fits my need is
hold all

Más respuestas (3)

Azzi Abdelmalek
Azzi Abdelmalek el 25 de Sept. de 2012
Editada: Azzi Abdelmalek el 25 de Sept. de 2012
color='rmbc'
markers = '+o*.x'
t=0:0.1:10;y=sin(t);
plot(t,y,[markers(2) color(3)])

Matt Fig
Matt Fig el 25 de Sept. de 2012
Editada: Matt Fig el 25 de Sept. de 2012
You can do this:
set(0,'DefaultAxesLineStyleOrder',{'+','o','*','.','x','s','d','^','v','>','<','p','h'});
Then look:
figure
x = 0:.01:1;
hold all
for ii = 1:10
plot(x,x.^ii)
end
You should see that the marker changes every time the line color cycles through the colors.
  1 comentario
Kaiqi Fang
Kaiqi Fang el 4 de Mzo. de 2015
It won't change the marker until the default color pool has been cycled through. From the following post, if you just use one color type,
set(0,'defaultaxescolororder',[0 0 0]);
, then you can let the marker change every time.

Iniciar sesión para comentar.


Bruno Melo
Bruno Melo el 20 de Jun. de 2019
Try this function, it worked out for me...
https://www.mathworks.com/matlabcentral/fileexchange/52091-plot-with-linestyles-and-markers#feedbacks

Categorías

Más información sobre View and Analyze Simulation Results en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by