我的图surf(x,y,z)
我还有contourf
曲面(基本上是2D平面)。
我将它们绘制在同一图中,但contourf
图自动处于z=0
级别。我想将contourf
绘图移动到z=-10
(或z轴上的任何值),但我不能这样做。
我确信这很容易但我在MATLAB help / Google中找不到答案。 有什么想法吗?
答案 0 :(得分:10)
考虑以下示例:
%# plot surface and contour
Z = peaks;
surf(Z), hold on
[~,h] = contourf(Z); %# get handle to contourgroup object
%# change the ZData property of the inner patches
hh = get(h,'Children'); %# get handles to patch objects
for i=1:numel(hh)
zdata = ones(size( get(hh(i),'XData') ));
set(hh(i), 'ZData',-10*zdata)
end
以上在HG2中不再起作用。可以使用轮廓ContourZLevel
的隐藏属性来修复它:
Z = peaks;
surf(Z), hold on
[~,h] = contourf(Z);
h.ContourZLevel = -10;
您还可以使用hgtransform
来实现类似的操作,这是记录和推荐的方法。
请参阅我的另一个答案以获得进一步解释:plot multiple 2d contour plots in one 3d figure。