Matlab:在Surf-Plot中指定要着色的值范围

时间:2014-11-08 13:59:19

标签: matlab colors plot surface

我正在使用surf在Matlab中绘制3D图形。 z轴的值介于00.3之间。我不希望零被着色。他们应该是白人。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

您可以为所有z = 0NaNsX设置YZ的点,并且这些点不会显示在情节,即他们将是"没有颜色"。所以你可以这样做 -

X(Z==0) = NaN
Y(Z==0) = NaN
Z(Z==0) = NaN

surf(X,Y,Z);

但是,请注意浮点精度问题,因为您要与绝对零值进行比较。

对于浮点大小写,您可以使用公差值 -

tol = 0.08; %// tolerance

X(abs(Z)<tol) = NaN
Y(abs(Z)<tol) = NaN
Z(abs(Z)<tol) = NaN

surf(X,Y,Z);

实施例

[X,Y,Z] = peaks(25)

figure,surf(X,Y,Z), title('BEFORE')

tol = 0.08; %// tolerance

X(abs(Z)<tol) = NaN;
Y(abs(Z)<tol) = NaN;
Z(abs(Z)<tol) = NaN;

figure,surf(X,Y,Z), title('AFTER')

结果 -

enter image description here

enter image description here