2D将3D点云绘制为一组线

时间:2015-09-09 15:14:27

标签: matlab plot 2d lines

我有一个三维点数组。 我需要在2D [x,z]网格上绘制它们,其中每一行都基于范围内的Y值。 ES。第一行由点0和0表示。 y< 1,第二个用1< y< 2等。

我可以使用这个脚本很好地绘制点数(为了获得更好看的图形,我也可以通过在rgb三元组内移动来改变每组点的颜色)。 set是该行的范围(在我的情况下,Y是时间,我需要每0.1秒绘制一次)。我是我的积分数的索引。

w= 0;
yend = 100;
set = 0.1;
numberOfColors = 1/2*(Yinterval)*(1/set);
incrementOfColor = 1/numberOfColors;
red = 0;
green = 0;
blue = 1;
color=[red green blue];

while w < yend

while y(i)>w&&y(i)<w+set

    figure(1)
    hold on        
    plot(x(i),z(i),'.','Color',color);
    hold on
    i=i+1;
end
    w=w+set;

   if red < 1-incrementOfColor && blue > 0
       red = red + incrementOfColor;
       blue = blue - incrementOfColor;

   end
  if red > incrementOfColor && blue < incrementOfColor
      red = red-incrementOfColor;
      green = green + incrementOfColor;
      blue = 0;
  end
   color = [red green blue];


end

这就是结果: http://i.imgur.com/HTyzWai.png 当数据太多时,绘图变得很麻烦,而且数据隔离点太少并不能说明多少。 我试过在&#34; set&#34;中转换积分。间隔成阵列,但它确实没有成功:

while w < yend

while y(i)>w&&y(i)<w+set
    vX(a,:)=x(i);
    vZ(a,:)=z(i);
    i=i+1;
 a=a+1;
end    


    figure(2)
    hold on        
    plot(vX,vZ,'-','Color',color);

给出了这个结果:imgur.com/S7OasUn.jpg

我的转换是错误还是数组不是处理此问题的正确方法?如果是这样,我应该使用什么?

我对matlab很新,所以如果这很明显,或者我错误地问了一些问题,请原谅。

编辑: 这是我想要达到的结果:
imgur.com/jPZTO8E.png 它是使用Origin的轮廓曲线工具获得的。 我猜你的意思是功能性的例子:

myPoints[i]: 
i=0, x = 1, y= 0.03, z = 1
i=1, x = 2, y= 0.06, z = 3
i=2, x = 2.5, y = 0.09, z = 4
i=3, x = 1.2, y = 1.01, z = 3.1
i=4, x = 1.3, y = 1.04, z = 1.1
i=5, x = 1.2, y = 1.06, z = 2.5
i=6, x = 2, y = 1.09, z = 3.1
i=7, x = 1.2, y = 2.02, z = 3.1

等。

我希望点i 0,1,2绘制为一条线,i 3,4,5作为另一条线,i 7等绘制为第三条线。在我的数据中,我有很多要点。

这是我使用的数据的一个例子。 https://drive.google.com/file/d/0B9GHAkIYepQcRXdBdy03dFJtT1k/view?usp=sharing 其中:

x = myPoints(:,1);
y = myPoints(:,2);
z = myPoints(:,3);

在这个特定的情况下,我只关心y值在85.85和90.85之间的点,我想&#34;放置边缘&#34; (?)每0.1

x = myPoints(:,1);
y = myPoints(:,2);
z = myPoints(:,3);
ymin = 85.85;
ymax = 90.85;
set = 0.1;
nbins = (ymax-ymin)/set;
binedge = linspace(ymin, ymax, (nbins + 1));

0 个答案:

没有答案