Рассмотрим следующий пример:
%# 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
UPDATE:
Вышеуказанное больше не работает в HG2. Это можно исправить с помощью скрытого свойства контуров ContourZLevel
:
Z = peaks;
surf(Z), hold on
[~,h] = contourf(Z);
h.ContourZLevel = -10;
Вы также можете использовать hgtransform
для достижения аналогичной цели, что является документированным и рекомендуемым подходом.
См. Еще один мой ответ для дальнейшего объяснения: нанесите несколько двухмерных контурных графиков на одну трехмерную фигуру .