我正在使用surf
在Matlab中绘制3D图形。 z轴的值介于0
和0.3
之间。我不希望零被着色。他们应该是白人。我怎么能这样做?
答案 0 :(得分:3)
您可以为所有z = 0
,NaNs
和X
设置Y
为Z
的点,并且这些点不会显示在情节,即他们将是"没有颜色"。所以你可以这样做 -
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')
结果 -