【问题标题】:3D scatter plot with 4D data带有 4D 数据的 3D 散点图
【发布时间】:2014-11-07 02:46:45
【问题描述】:

我需要绘制一个 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 的新手,真的不知道如何进行。任何帮助将不胜感激。

提前致谢!

【问题讨论】:

  • 在您的声明scatter3(X,Y,Z,'filled','b') 中,'b' 代表蓝色。由于您只指定一种颜色,因此它将应用于所有点。如果您使用scatter3(X,Y,Z,'filled',W),标记应该有不同的颜色(相对于您的第 4 轴 W)。另请注意,您可以将'filled' 参数替换为数值向量(与其他向量长度相同),这将控制每个标记的大小。

标签: matlab plot matlab-figure scatter-plot colormap


【解决方案1】:

所以只需将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

【讨论】:

  • 太糟糕了,30 秒,我没有图像 ;)
  • 我可以根据数据中的类别为表面着色吗?例如,stackoverflow.com/questions/38981257/…
  • 我不太明白你的问题。请发布一个包含更多详细信息的新帖子。
【解决方案2】:

你已经快到了……只需使用

scatter3(X,Y,Z,s,W);

其中 s 是点大小(标量,例如 3),W 是带有 W 值的向量。 您可能还想发出一个

set(gcf, 'Renderer','OpenGL');

gcf 在哪里获取您正在绘制的当前图形,以在分散大量数据时显着提高响应能力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2021-11-11
    • 2020-03-25
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多