无序X Y坐标对+浓度等值线图

时间:2012-01-06 13:08:22

标签: matlab plot contour

我有2个向量,X和Y,对应于无序坐标列表,以及每个点对应的浓度向量C.

我想在结构化网格上将其绘制为2D等高线图。

scatter3(X,Y,C,[],C);

给了我想要的视觉效果,但我正在寻找2D轮廓,即pcolor。是否有像griddata或trigriddata这样的简单解决方案?

编辑:好的,所以`scatter3(X,Y,C,[],C); view([0 90])'是正确的视觉效果。 TriScatteredInterp非常适合矩形。但是像地图一样的不规则形状呢? :=)

F = TriScatteredInterp(x,y,C);    ty=0:0.005:0.284;    tx=0:0.005:0.65;    [qx,qy] = meshgrid(tx,ty);    qC = F(qx,qy);    pcolor(qx,qy,qC);

示例:(X =宽度坐标,Y =高度坐标,C =污染物浓度)

X    Y    C
0.1  0.0  5
0.1  0.1  10
0.1  0.21 5
0.2  0.1  4
0.2  0.3  1
0.2  0.5  2
0.2  0.51 7
0.3  0.15 4
0.3  0.36 6
0.3  0.5  3
0.3  0.52 7

scatter3(X,Y,C,[],C,'filled');      %individual plotting of X,Y pairs and colors=C
view([0 90])                        %see only XY and Z becomes flat

想象一下,我们有10000个XY对,因此scatter3几乎产生image但没有插值。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以使用contour(X,Y,Z)

编辑:您可以将imagesc与您自己创建的矩阵一起使用。因此,如果您的xy值处于合理范围内,则可以从以下开始:

I = zeros(max(x), max(y));
for d = 1: length(x),
    I(x(d),y(d)) = z(d);
end
imagesc(I);