I want to make a 2D plot of points with different x, y coordinates and have colors depending on a separate variable. I have make column vectors for x and y coordinates and another column containing 1 or -1. I would like to represent the points with 1 as red and -1 as blue points. I have codes as follow:
x_dis=rho_rec(1:nDis,xCol,step);%x coordinates
y_dis=rho_rec(1:nDis,yCol,step); %y coordinates
bv=rho_rec(1:nDis,bvCol,step); % 1 or -1
for i=1:1:nDis
if bv(i)==1
dis_color(i,1:3)=[0 0 1]; %blue
elseif bv(i)==-1
dis_color(i,1:3)=[1 0 0]; %red
end
end
plot(x_dis,y_dis,'.','Color',dis_color(1:nDis,:))
However it doesn't work. How should I modify the code? Thank you.
I believe you mean to make a scatter plot. You need to use the scatter function. If that is the case, you do not pass on a 'Color'
argument.
The following should work for you:
scatter(x_dis,y_dis,[],dis_color(1:nDis,:),'.')
The []
is a placeholder for marker size
Do you initialize dis_color
elsewhere? You may wish to do that before your for loop.