coloring points based on value
조회 수: 10 (최근 30일)
이전 댓글 표시
I have x & y coordinates of points. Also each point has one of the two values (2,4). I want my point to be blue if value is 2 otherwise red. The way i am doing is taking too much time. Please suggest faster way
for z = 1:N_s
l = length(P{z});
a = 1;
while a <= l
x = P{z}(a,1); y = P{z}(a,2);
figure(1)
p_s = S{z}(a,1);
if p_s == 2
plot(x,y,'.', 'Color', colorstring(1)); hold on
else
plot(x,y,'.', 'Color', colorstring(2)); hold on
end
a = a + 1;
end
axis equal; hold on
end
댓글 수: 0
답변 (1개)
KSSV
2021년 5월 19일
You need not to use a loop. You can achieve this by getting the required indices and plotting. Check the beow demo example:
x = 1:10 ;
y = rand(size(x)) ;
% get values less than 0.5
idx = y<0.5 ;
% plot
figure
hold on
plot(x(idx),y(idx),'.b')
plot(x(~idx),y(~idx),'.r')
댓글 수: 2
KSSV
2021년 5월 19일
That is not a problem......you can use index for the value and plot x,y. Let x,y,val be your values.
idx = val==2 ;
figure
hold on
plot(x(idx),y(idx),'.r')
plot(x(~idx),y(~idx),'.b')
Also have a look on the function gscatter. You can use this function as well.
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!