Оба графических объекта, поверхность и линия построены на плоскости XY, поэтому вы видите линию, как только ее значение z
превышает значение z
графика поверхности, и наоборот, если поверхность z
выше линии z
.
Вы можете построить линию в поднятой плоскости, добавив смещение z
, чтобы избежать проблемы:
mat=rand(4,125);
h = surf(mat'); % Save the handle of your surface object
meshgrid(-5:0.5:5);
view(2);
hold on
z_max = max(max(get(h,'ZData'))); % get max z value of surface plot
% Now plot your line in an z_plane above the highest surf point
line([2 2], [1 140], z_max*ones(1,2)+1, 'LineWidth', 8, 'Color', [1 0 0])
Теперьлиния всегда находится сверху поверхности графика