Arrays 散点图:对不同的数据集使用不同的颜色

Arrays 散点图:对不同的数据集使用不同的颜色,arrays,matlab,plot,3d,scatter-plot,Arrays,Matlab,Plot,3d,Scatter Plot,我有3个Nx1阵列,比如X、Y、Z。我想创建一个3D绘图,这样我可以为每个阵列指定不同的颜色,以提高点的可见性。我现在的主要目标是只改变数组Z的颜色,使数组X和Y的元素与数组Z的元素具有不同的颜色 我尝试了scatter3函数和gscatterMATLAB函数,但未能达到我的期望 如果我们在图像中看到垂直轴(Z轴),则点的颜色从蓝色到橙色/黄色不等。我想把所有这些Z点的颜色都设置为红色。其余,X点和Y点的所有颜色保持不变采用参数X和Y,然后a表示尺寸,c表示颜色a可以是单个标量,也可以是每个(

我有3个Nx1阵列,比如X、Y、Z。我想创建一个3D绘图,这样我可以为每个阵列指定不同的颜色,以提高点的可见性。我现在的主要目标是只改变数组Z的颜色,使数组X和Y的元素与数组Z的元素具有不同的颜色

我尝试了
scatter3
函数和
gscatter
MATLAB函数,但未能达到我的期望

如果我们在图像中看到垂直轴(Z轴),则点的颜色从蓝色到橙色/黄色不等。我想把所有这些Z点的颜色都设置为红色。其余,X点和Y点的所有颜色保持不变

采用参数
X
Y
,然后
a
表示尺寸,
c
表示颜色
a
可以是单个标量,也可以是每个
(x,y)
点具有大小的向量
c
可以是与
x
y
大小相同的一个或一个向量。例如:

x = 1:4;
scatter(x, x, 10*x, x);
导致

是相似的,所以在你的情况下,也许

scatter3(X,Y,Z,[],Z)
将导致数据具有由其z值确定的不同颜色

我想有一个小例子就是你想要的:

X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);

scatter3(X,Y,Z,[],Z)
产生:


我通过尝试不同的MATLAB函数得到了答案

我使用了
gscatter
功能。由于我必须将所有Z点(将“Z”阵列视为第三个数据集)涂成红色,将其余X和Y数据集(其他2个数据集)涂成绿色或其他颜色,因此我使用了以下代码:

group = Z(:,1); 
gscatter(X(:,1),Y(:,1),group, 'gr', 'xo'); 
它创建了一个2D绘图,但符合我的目的

图像由3个数据集组成,但前2个数据集有意组合(绿色十字),第3个数据集保持红色,以可视化第3个数据集与第一个和第二个数据集组合的关系


请更详细地说明为什么
scatter3
gscatter
不起作用。另外,请添加一个可复制的example@Suever,我无法理解gscatter中的分组。你能添加一个显示你想要的图像吗?@zeemonkez我已经添加了图像。这是我能做的。我想为每个X、Y和Z分开颜色。@user3098378你的意思是你想让散点图中的每个点都有不同的颜色吗?我想让X中的所有点都是红色,Y中的所有点都是绿色,同样地,Z中的所有点都是蓝色。@user3098378那么你想要一维散点图吗?如
散射(零(N,1),X,[],'r');散射(零(N,1),Y,[],'g');散射(零(N,1),Z,[],'b')
?@user3098378“但是,我希望X值的点应该有相同的颜色,比如说红色”这是所有的点。所有的点都依赖于X、Y和Z阵列来获取信息,因此不能对它们分别着色。