MATLAB:如何制作不同颜色点的二维图?
MATLAB: How to make 2D plot of points with different colors?
我想绘制具有不同 x、y 坐标的点的二维图,并根据单独的变量设置颜色。我为 x 和 y 坐标创建了列向量,另一列包含 1 或 -1。我想将 1 表示为红色,-1 表示为蓝色点。我有如下代码:
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,:))
然而它不起作用。我应该如何修改代码?谢谢。
我相信你的意思是制作散点图。您需要使用分散功能。如果是这样,您就不会传递 'Color'
参数。
以下应该适合您:
scatter(x_dis,y_dis,[],dis_color(1:nDis,:),'.')
[]
是标记大小的占位符
你在别处初始化dis_color
吗?您可能希望在 for 循环之前执行此操作。
我想绘制具有不同 x、y 坐标的点的二维图,并根据单独的变量设置颜色。我为 x 和 y 坐标创建了列向量,另一列包含 1 或 -1。我想将 1 表示为红色,-1 表示为蓝色点。我有如下代码:
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,:))
然而它不起作用。我应该如何修改代码?谢谢。
我相信你的意思是制作散点图。您需要使用分散功能。如果是这样,您就不会传递 'Color'
参数。
以下应该适合您:
scatter(x_dis,y_dis,[],dis_color(1:nDis,:),'.')
[]
是标记大小的占位符
你在别处初始化dis_color
吗?您可能希望在 for 循环之前执行此操作。