我有一个问题,我的数据格式化,使得我在Z轴上有n个数据点,并且每个Z数据点都有m个对应的x& y分。我基本上想要有两个2D m点图,但是合并到一个表面上。
我的数据采用以下形式:
z = [0 1 2 3]
data(:, :, 1) = [0 1 2; 2 2 2] (the first row corresponds to the x points, second to the y; the page (the 1) corresponds to the respective z point at which I am plotting said x and y points)
基本上,在z(i)
,我想要data(:, :, i)
。然后最后所有人合并成一个表面。我该如何做到这一点?
可能有助于想象这种情况的一个例子是,如果所有data(:, :, i)
的{{1}}是均匀的,就像上面的样本一样,那么将绘制一个立方体表面(第12卷)。
答案 0 :(得分:0)
基本上,在z(i),我希望绘制数据(:,:,i)。然后最后所有人合并成一个表面。我该如何做到这一点?
使用scatter3
为每个具有一组x,y,z值的点绘制3-D scatter plot。
或者,使用plot3
到make 3-D line plot。注意参数格式。
您可以使用
之类的代码for ii = 1:length(z)
x = data(1, :, ii);
y = data(2, :, ii);
scatter3(x, y, z*ones(1, length(x));
end
最后,rotate your angle of view使用view([0,0,-1])
面向z轴的方向。这样,所有不同z值的层被挤压成一层。
如果你真的想要忽略z值,但只想看到所有点的叠加图,
for ii = 1:length(z)
x = data(1, :, ii);
y = data(2, :, ii);
scatter(x, y);
end
可能有助于想象这种情况的一个例子是,如果所有i的数据(:,:,i)都是一致的,就像上面的样本一样,那么就会绘制一个立方体表面(第12卷)。
正如@rayryeng评论的那样,我发现这很难想象。 “12号立方体表面”是什么意思?这部分看起来与上面的描述不同。