Matlab多维散点图

Matlab multidimensional scatter

我有一个 nx4 矩阵,其中每一行都是一个观察值。

三个三列代表变量,第四个'fitness'参数。

我想在 3D 散点图中显示它,其中每个轴都是我的变量之一,然后根据它与第四列中的极端之一的接近程度为每个点着色。

例如,假设适应度介于 0 和 1 之间。我希望适应度为 0 的观察结果为蓝色,适应度为 1 的观察结果为红色,而介于两者之间的相应阴影。

关于如何最好地做到这一点有什么建议吗?

谢谢!

使用 scatter3 和适当的颜色图:

scatter3(data(:,1), data(:,2), data(:,3), 10, data(:,4), '*')
colormap(hsv)
colorbar

哪里

  • data 是你的矩阵
  • 10 是标记大小
  • '*'是标记形状
  • hsv 是选择的颜色图

函数 scatter3 有一个颜色输入参数。但是您还需要定义标记的大小。

% Generate example data,
X=rand(10,1)*10;
Y=rand(10,1)*3;
Z=rand(10,1)*5;
fit=rand(10,1)*3+10;

scatter3(X,Y,Z,ones(size(X))*40,fit,'fill')