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

60 Ansichten (letzte 30 Tage)
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 Kommentar
Ali
Ali am 29 Okt. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

MM
MM am 25 Sep. 2012
In fact I think what really fits my need is
hold all

Weitere Antworten (3)

Azzi Abdelmalek
Azzi Abdelmalek am 25 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 25 Sep. 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 am 25 Sep. 2012
Bearbeitet: Matt Fig am 25 Sep. 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 Kommentar
Kaiqi Fang
Kaiqi Fang am 4 Mär. 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.

Melden Sie sich an, um zu kommentieren.


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

Kategorien

Mehr zu View and Analyze Simulation Results 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