我有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
但没有插值。
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用contour(X,Y,Z)
编辑:您可以将imagesc
与您自己创建的矩阵一起使用。因此,如果您的x
和y
值处于合理范围内,则可以从以下开始:
I = zeros(max(x), max(y));
for d = 1: length(x),
I(x(d),y(d)) = z(d);
end
imagesc(I);