XML_HTMLSax
довольно стабилен - даже если он больше не поддерживается. Другой вариант может заключаться в том, чтобы передать вам HTML через Html Tidy , а затем проанализировать его стандартными инструментами XML.
После некоторого копания в документе я нашел лучшее решение.
Порядок отсечения указан на уровне axes
.
Полный MWE, чтобы контуры всегда были поверх поверхности ниже:
fig = figure;
ax = get(gca);
ax.SortMethod = 'childorder'; % this is the important line
surf(x,y,z);
[c,h] = contour3(x,y,z,'LevelList',[0 : 0.1 : 1],'Color','k');
clabel(c,h,[0 : 0.1 : 1]);
Вы можете попробовать работать с свойствами патчей contour
: увеличить linewidth
края патча: значение по умолчанию равно 0.5: a linewidth
из 1 или 1.5 должно быть достаточно.
Точно так же вы можете установить свойства лавелей, сгенерированных clabel
: вы можете установить font size
и font weight
, чтобы сделать их более видимыми. Также вы можете установить количество добавляемых меток, указав свойство labelspacing
.
Интересным вариантом может быть также установка вручную меток вручную: это можно сделать, указав свойство manaul
в clabel
.
Ниже вы найдете пример, основанный на поверхности peaks
:
[x,y,z]=peaks
surf(x,y,z);
shading interp
hold on
[c,h] = contour3(x,y,z,[-10:1:10]);
set(h(:),'linewidth',1,'edgecolor','k')
clabel(c,h,[-10:1:10],'fontsize',9,'fontweight','bold','rotation',0,'labelspacing',99);
% clabel(c,h,'manual','fontsize',9,'fontweight','bold','rotation',0);
Надеюсь, что это поможет.