我试图在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])
答案 0 :(得分:1)
两个图形对象,曲面和直线都在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])
现在,线条始终位于曲面图的顶部