Loop with "for" and "if" and then a scatter with different colors
조회 수: 7 (최근 30일)
이전 댓글 표시
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
채택된 답변
DGM
2022년 2월 26일
편집: DGM
2022년 2월 26일
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
추가 답변 (1개)
dpb
2022년 2월 26일
편집: dpb
2022년 2월 26일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Colormaps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!