无法在冲浪图上绘制一条线 - 这条线是零散的

Unable to plot a line over a surf plot- the line is fragmented

我试图在 Matlab 中的冲浪图上绘制一条线,但这条线在某些区域变得支离破碎。 我正在尝试创建线条或正方形来分隔不同的数据块。我试着用注释来做这个,在那里,线条没有碎片化,但我很难将矩形定位在确切的位置。

如果有一个使用线条的解决方案,它们不会被分割,或者有一种创建矩形的方法,您只需输入开始 X 和结束 X,那将是完美的。

mat=rand(4,125);
surf(mat');
meshgrid(-5:0.5:5);
view(2);
hold on
line([2 2],[1 140],'LineWidth',8,'Color',[1 0 0])

图形对象、曲面和线都绘制在 XY 平面上,因此一旦其 z 值高于曲面图的 z 值,您就会看到线,并且反之亦然,如果表面 z 高于直线 z.

您可以通过添加 z-offset 来在凸起的平面中绘制线,以避免出现问题:

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])

现在线总是在曲面图的顶部