elliptical selection

Help
iskren_g
2005-09-16
2013-02-10
  • iskren_g

    iskren_g - 2005-09-16

    Hellow!
    Is there any way to apply elliptical selection criteria for points found in a data file colums?

     
    • Hans-Bernhard Broeker

      Hard to tell, without knowing what an "elliptical selection criterion" might mean, to you.

       
    • iskren_g

      iskren_g - 2005-09-16

      With set parametric I can plot the ellipse exactly over the data points, but how can I select to plot only those points which are within the ellipse, i.e. not to plot the outliers.

       
      • Hans-Bernhard Broeker

        Find the implicit equation for that ellipse.  It'll be something like

            (x/a)**2 + (y/b)**2 = 1

        Turn it into an implicit function:

            f(x,y) =  (x/a)**2 + (y/b)**2 - 1

        Then use that to decide which points to plot:

        plot 'data' using 1:(f($1,$2)<0 ? $2 : 0/0) with points

         
    • iskren_g

      iskren_g - 2005-09-16

      Quite clever, I didn't know that a function could be forced to read a data coumns in this way. This should work. However, I found my ellipse is parametrised in this form:

      x=a*cos(t+c)
      y=b*sin(t)

      where c is the angle in which the ellipse is rotated

      How can I implement that angle in your example?

       
    • iskren_g

      iskren_g - 2005-09-16

      I think I managed, (with transformation matrix):

      f(x,y)=((x*cos(phi)+y*sin(phi))/a)**2 + ((x*cos(phi)-y*sin(phi))/b)**2

       
      • Hans-Bernhard Broeker

        That's the right idea, but you have a bug in the resulting formula.   The correct formula would have all 4 combinations of (x,y) * (cos,sin).

        As a side note: if you know a thing or two about rotation matrices, it's not too hard to reach this form of the function:

           f(x,y) = a11 * x*x + 2*a12*x*y + a22*y*y

        which should evaluate somewhat faster, once you've found a11 to a22.

         
    • iskren_g

      iskren_g - 2005-09-16

      Yes, what I typed was not correct at all. I put all the combinations resulting from multiplication the vector with the rotation matrix in the gnuplot and it works for the data points!
      I have now to see the correct transformation for the ellipses to draw, since they are in parametric mode. If I aply the same matrix I need to give +180 degree for the angle in which the elipse should be rotated. Then the data and the overploted data points match.

      I'll try your last suggestion. Now the evaluation is a bit slow :)

       
      • Hans-Bernhard Broeker

        > I need to give +180 degree for the angle in which the
        > elipse should be rotated

        That cannot possibly be the case --- what with an ellipse being identical to itself under such a rotation and all that ...

         
    • iskren_g

      iskren_g - 2005-09-16

      in parametric mode, the ellipse plot is quite unstable depending on the angle

       
      • Hans-Bernhard Broeker

        You'll have to expand that description considerably before it can be addressed.  But here's a hint that may prove useful:

           help set angle

         
    • iskren_g

      iskren_g - 2005-09-16

      somehow the ellipses jump in 3 degrees, e.g. 31, 34, 37,
      etc. work, but 32, 33,35, etc jump in different quadrant!
      The set angle options doesnt fix the problem. When I say

      > set angle degrees

      it fix the problem with function jumping (it jumps in angles
      different than 32, 35, 38, etc.), but now the ellipses are not being plotted

       
      • Hans-Bernhard Broeker

        Both those effects you describe would be caused exactly by the various angles you use (specifically the parameter 't' of the parametric plot, and the rotation angle of the ellipse, \phi) being expressed not all in the same units.

          set angles radians ; set trange [0:360]

        will give you a very strange-looking ellipsoid, whereas

          set angle degrees ; set trange [0:2*pi]

        will give you only a very small piece of ellipse.

         
    • iskren_g

      iskren_g - 2005-09-19

      Thanks a lot for the advices!
      I think that gnuplot's help database should give better
      explanations elucidated with more examples. Especialy
      evaluating functions with plot ... using. It is never
      mentioned that I can refer a function within the plotting
      conditions in the way you told me.

      Thanks again!

       
      • Hans-Bernhard Broeker

        It is mentioned that you can put an expression in parentheses there, and what that means.  The leap to guess that "expression" includes evaluating a function should be sort-of obvious --- and people for whom it's not should look up what "expression" means, which will tell them).

         

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks