这并不是那么糟糕.您可以使用它plot3
来帮助您进行此类绘图.有了plot3
,你需要做的是让y
您的每个地块的价值z
值,而不是,如果你想图表分开,你需要改变y
这个3D图值.我们举个例子.假设我想以这种方式在一个图上放置4个图形.图表是:
y = sin x
y = cos x
y = exp(-x)*sin(x)
y = exp(-x)*cos(x)
因此,x
对于每个图,您将拥有一组相同的值.您将拥有一组不同的y
值,并且取决于图表本身.您将这些z
值设为这些值,然后对于每个图形,您将拥有不同的y
值,但是对于每个绘图,它们都将是相同的,因为您将要使用这些值相应地将每个图形偏移到单独的他们.因此:
%// Define the x values
x = (0:0.001:10).';
xMat = repmat(x, 1, 4); %// For plot3
%// Define y values
y = 0:0.001:0.003;
yMat = repmat(y, numel(x), 1); %//For plot3
%// Define z values
z1 = sin(x);
z2 = cos(x);
z3 = exp(-x).*sin(x);
z4 = exp(-x).*cos(x);
zMat = [z1 z2 z3 z4]; %// For plot3
plot3(xMat, yMat, zMat, 'b'); %// Make all traces blue
grid;
xlabel('x'); ylabel('y'); zlabel('z');
view(40,40); %// Adjust viewing angle so you can clearly see data
Run Code Online (Sandbox Code Playgroud)
这是我得到的数字:
诀窍是形成正确的矩阵,以便plot3
正确进行.如何plot3
工作原理是,你可以把单一的载体在你的x,y,z
价值观,也可以使用矩阵 xMat,yMat,zMat
来代替.每个矩阵的每列xMat
,yMat
并zMat
表示要放置在绘图中的单个迹线.因此,每个xMat
信号的每列都进入一列.因此,我为我的值创建了一个向量x
,并将它们复制到我们所拥有的信号中.在这种情况下,我们有4个信号.y
必须以不同方式播放这些值.您需要确定每个信号之间允许的间距.我选择0.001
了每个信号.因此,我已经创建了矩阵,其被存储在yMat
,因此,每一列代表任一0
,0.001
,0.002
或0.003
.这些z
值将是您y
创建的不同列中的每个信号的值zMat
.
你需要使用它来获得正确的间距和每个轴的右边界,但这应该让你开始.祝好运!