【问题标题】:Unable to plot a line over a surf plot- the line is fragmented无法在冲浪图上绘制一条线 - 这条线是支离破碎的
【发布时间】:2018-10-24 11:32:56
【问题描述】:

我正在尝试在 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])

【问题讨论】:

    标签: matlab plot annotations line surf


    【解决方案1】:

    图形对象、曲面和线都绘制在 XY 平面中,因此一旦其 z 值高于曲面图的 z 值,您就会看到线,反之亦然,如果曲面 @ 987654325@ 高于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])
    

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

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      相关资源
      最近更新 更多