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

64 visualizzazioni (ultimi 30 giorni)
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 Commento
Ali
Ali il 29 Ott 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

Accedi per commentare.

Risposta accettata

MM
MM il 25 Set 2012
In fact I think what really fits my need is
hold all

Più risposte (3)

Azzi Abdelmalek
Azzi Abdelmalek il 25 Set 2012
Modificato: Azzi Abdelmalek il 25 Set 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 il 25 Set 2012
Modificato: Matt Fig il 25 Set 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 Commento
Kaiqi Fang
Kaiqi Fang il 4 Mar 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.

Accedi per commentare.


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

Categorie

Scopri di più su View and Analyze Simulation Results in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by