我有一个三维数据要在matlab中绘制。通过沿y方向堆叠10条具有不同参数的指数曲线来构建数据集,例如
x = 0:0.01:15;
x0 = 0.5;
y = [beta1, beta2, beta3, beta4, beta5, beta6, beta7, beta8, beta9, beta10];
Z(1, :) = A*exp(-(x-x0).^2/beta1);
Z(2, :) = A*exp(-(x-x0).^2/beta2);
Z(3, :) = A*exp(-(x-x0).^2/beta3);
Z(4, :) = A*exp(-(x-x0).^2/beta4);
...
Z(10, :) = A*exp(-(x-x0).^2/beta10);
% here A could be change based on beta too (no code shown here)
我试图用瀑布绘制Z,除了我不希望高度(即垂直线)出现在边缘。我不知道是否有任何其他方法可以将数据绘制为类似瀑布的曲线,但没有那些垂直线。感谢
答案 0 :(得分:2)
“用线条绘制而不是用曲面贴片” 换句话说,您希望边界线不可见。嗯,这不是一件轻而易举的事,因为边界线与您可以直接包含的任何配色方案是分开的。您需要做的是在绘制数据后获取数据,然后相应地修改它:
e.g。
[X,Y,Z] = peaks(30);
h = waterfall (X,Y,Z);
CD = get (h, 'CData');
CD(1,:) = nan;
CD(end-2:end,:) = nan;
set (h, 'CData', CD)
请注意CD(1,:)
用于“上升”边界,而CD(end-2:end-1,:)
用于下降边界,CD(end,:)
用于底部。
答案 1 :(得分:1)
我知道这是一个旧帖子,但下面的内容将使曲线下的区域变得透明:
figure;
[X,Y,Z] = peaks(10);
handle_figure = waterfall( X, Y, Z );
set( handle_figure, 'FaceColor', 'none' );