我需要使用色彩图绘制一个3D图形,每个数据点用第四个变量的值着色。假设我有4个变量X,Y,Z和W,其中W = f(X,Y,Z)。我想要一个以X,Y和Z为三轴的3D图。声明scatter3(X,Y,Z,'filled','b')
给出了3D的散点图,但是我希望通过将点表示为额外参数来将Z的值合并到图中(具有不同的区域:具有高Z值的数据点的较大圆圈)对于具有低Z值的数据点或通过使用色图绘制具有不同颜色的数据点的小圆圈。但是,我是MATLAB的新手,并不知道如何继续。任何帮助将受到高度赞赏。
提前致谢!
答案 0 :(得分:6)
所以只需使用z
作为大小矢量(第4个输入)以及颜色矢量(第5个输入):
z = 10*(1:pi/50:10*pi);
y = z.*sin(z/10);
x = z.*cos(z/10);
figure(1)
scatter3(x,y,z,z,z)
view(45,10)
colorbar
尺寸向量需要大于0,因此您可能需要相应地调整z
。
答案 1 :(得分:1)
你已经快到了......只需使用
scatter3(X,Y,Z,s,W);
其中s是点大小(标量,例如3),W是具有W值的向量。 您可能还想发布
set(gcf, 'Renderer','OpenGL');
当gcf得到你当前的数字时,你正在绘制,以便在散布大量数据时显着提高响应能力。