【问题标题】:Overlay the data points which make-up a contour plot matrix on the same plot in MATLAB将构成等高线图矩阵的数据点叠加在 MATLAB 中的同一图上
【发布时间】:2016-09-17 22:02:09
【问题描述】:

希望标题能充分描述我的问题。基本上,我使用 contourf (x,y,z) 函数在 MATLAB 中生成等高线图,其中 x 和 y 是不同长度的向量,z 是维度为 x 乘以 y 的数据矩阵。轮廓图很好,但是,我希望用矩阵 z 中的实际数据点覆盖这个图。我曾尝试使用 scatter 函数,但我收到一条错误消息,通知我 X 和 Y 必须是相同长度的向量 - 但事实并非如此。有没有其他方法可以做到这一点?

提前感谢任何帮助/建议!

【问题讨论】:

    标签: matlab plot matlab-figure contour contourf


    【解决方案1】:

    我认为meshgrid 应该可以帮助您。

    z = peaks;               %// example 49x49 z data
    x = 1:20;
    y = 1:49;
    z = z(y,x);              %// make dimensions not equal so length(x)~=length(y)
    [c,h] = contourf(x,y,z); 
    clabel(c,h); colorbar; 
    
    [xx,yy]=meshgrid(x,y);   %// this is what you need
    hold on;
    plot(xx,yy,'k.');        %// overlay points on contourf
    

    注意 plot 代替 scatter 就足够了。如果您坚持,例如,scatter(xx(:),yy(:),10) 可以解决问题。虽然我的例子不是特别有趣,但希望这能让你开始追求美学上的目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 2021-12-21
      • 2015-01-08
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多