无法在冲浪图上绘制一条线 - 这条线是零散的
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])
现在线总是在曲面图的顶部
我试图在 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])
现在线总是在曲面图的顶部