Loop with "for" and "if" and then a scatter with different colors
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rachele Franceschini
am 26 Feb. 2022
Bearbeitet: dpb
am 26 Feb. 2022
I would like one scatter plot with two different colors for different fields.
I have one table with x1, x2, y3.
I make one scatter with scatter(x1,x2,"o","filled"), but I would like that colors were on the base of y3.
Y3 has values from 0 to 81. I would like that fields with values<10 were green, vice versa values>10 were red.
0 Kommentare
Akzeptierte Antwort
DGM
am 26 Feb. 2022
Bearbeitet: DGM
am 26 Feb. 2022
Consider the example
% placeholder data
x1 = rand(100,1);
x2 = rand(100,1);
y1 = randi([0 81],100,1);
mask = y1<10; % create a mask
% plot the two sets
scatter(x1(mask),x2(mask),50,"og","filled"); hold on
scatter(x1(~mask),x2(~mask),50,"or","filled")
Alternatively, you could use colormapping:
figure
cmap = permute(ind2rgb(mask+1,[1 0 0; 0 1 0]),[1 3 2]);
scatter(x1,x2,50,cmap,"o","filled")
0 Kommentare
Weitere Antworten (1)
dpb
am 26 Feb. 2022
Bearbeitet: dpb
am 26 Feb. 2022
Alternatively, gscatter with @DGM example...
gscatter(x1,x2,mask,[],[],[],0,'X Variable','Y Variable')
legend('Level 1','Level 2','Location',"northoutside","Orientation",'horizontal')
See the doc for gscatter for all the possible variations of input parameters.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Colormaps 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!