[R] Fwd: Re: Creating "Envelope" around a plot

WRAY NICHOLAS nicholas.wray at ntlworld.com
Mon Nov 2 18:29:55 CET 2015


Hi Bill I have been doing exactly that, ie summing the Euclidean distances
between points in the strands   Although with small sets of strands this
technique allows me to group the strands into various sets, which I can assume
are the same, unfortunately once I have a larger number of strands the distances
between groups become on the same order as the distances within groups as so
it's no longer clear cut.  I have tried various approaches, include a kind of
Monte Carlo sampling to create the distinct groups but the best approach seems
to be a kind of "kinship" idea, where if two one strand lies within the
"envelope" of another I can set them together.  But as said, creating the
envelope in R is not straightforward

Thanks Nick

> On 02 November 2015 at 16:51 William Dunlap <wdunlap at tibco.com> wrote:
> 
>     Instead of computing the envelopes (of various radii) of paths and seeing
> if they intersect
>     you could compute distances between paths and seeing if they are smaller
> than a given
>     distance. Computing the distance between 2 polylines is not difficult,
> although computing
>     it quickly for very long sequences of line segments is more difficult.
> 
>     Bill Dunlap
>     TIBCO Software
>     wdunlap<http://tibco.com>
> 
>     On Mon, Nov 2, 2015 at 7:19 AM, WRAY NICHOLAS < nicholas.wray at ntlworld.com
> <mailto:nicholas.wray at ntlworld.com> > wrote:
> 
>         > >         > ---------- Original Message ----------
> >         > From: WRAY NICHOLAS < nicholas.wray at ntlworld.com
> >         > <mailto:nicholas.wray at ntlworld.com> >
> >         > To: Duncan Murdoch < murdoch.duncan at gmail.com
> >         > <mailto:murdoch.duncan at gmail.com> >, r-help
> >         > <r-help at missing_domain>
> >         > Date: at
> >         > Subject: Re: [R] Creating "Envelope" around a plot
> >         >
> >         >
> >         > Hi Dennis again, I see what you're getting at and it looks rather
> >         > groovy
> >         > but unfortunately what I actually need is the vector of the points
> >         > on the
> >         > boundary (the graphics just being a way of checking that
> >         > everything's as it
> >         > should be) and so it rather looks like I need to do a lot of
> >         > calculating of
> >         > orthogonal vectors along straight stretches and circles round
> >         > peaks
> >         >
> >         > I'm looking to do an algorithmic filtration of strands which lie
> >         > within
> >         > the "envelope" of other strands -- your method would allow visual
> >         > "by hand"
> >         > inspection but unfortunately I've got hundreds of strands to
> >         > compare!
> >         >
> >         > But thanks again -- useful thoughts Nick
> >         >
> >         > > >
> >         > > On 02 November 2015 at 15:03 Duncan Murdoch
> >         > > < murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com> >
> >         > > wrote:
> >         > >
> >         > >
> >         > > On 02/11/2015 7:33 AM, WRAY NICHOLAS wrote:
> >         > > > Hi I am plotting various strands of information, and I want to
> >         > > > create an
> >         > > > "envelope" around each line, so that the locus of the envelope
> >         > > > is
> >         > > > the boundary
> >         > > > points no more than a fixed maximum distance from the plotted
> >         > > > line, a bit like
> >         > > > drawing a larger rectangle with paralle sides and curved
> >         > > > compass
> >         > > > corners around
> >         > > > a smaller rectangle. Obviously I can work out how to do this
> >         > > > in
> >         > > > code
> >         > > > (eventually) but I suspect it would take me a while and i was
> >         > > > wondering whether
> >         > > > there was some R function which I don't know about which
> >         > > > creates
> >         > > > sets of of
> >         > > > points at a given maximal distance
> >         > > >
> >         > > > the lines are simple vectors, ie like this noddy example
> >         > > >
> >         > > > veca<-c(4,3,6,5,7,3,2,3,3,6,8,7)
> >         > > > plot(veca,type="l",lwd=2)
> >         > > >
> >         > > > then I want to plot the locus of the boundary of all points no
> >         > > > more than (say) 1
> >         > > > unit from the line I imagine that one would have to provide a
> >         > > > larger set of
> >         > > > interpolated points between the actual points of veca, but I
> >         > > > can
> >         > > > do that no
> >         > > > problem
> >         > > >
> >         > > > I'd be grateful if anyone out there in the R-ethervoid has any
> >         > > > ideas
> >         > >
> >         > > The graphics system will do this for you automatically if your
> >         > > coordinate system has the same scale in x and y, and you use a
> >         > > really
> >         > > huge line width. For example,
> >         > >
> >         > > veca<-c(4,3,6,5,7,3,2,3,3,6,8,7)plot(veca, lwd=150, col="gray",
> >         > > type="l")lines(veca, lwd=2)
> >         > >
> >         > >
> >         > > If you want to be 1 unit away in user coordinates and the x and
> >         > > y
> >         > > scales
> >         > > are different, it will be a lot harder.
> >         > >
> >         > > Duncan Murdoch
> >         > >
> >         > > >
> >         > >
> >         >
> > 
> > 
> > 
> >         [[alternative HTML version deleted]]
> > 
> >         ______________________________________________
> >         R-help at r-project.org <mailto:R-help at r-project.org> mailing list --
> > To UNSUBSCRIBE and more, see
> >         https://stat.ethz.ch/mailman/listinfo/r-help
> >         PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html
> >         and provide commented, minimal, self-contained, reproducible code.
> > 
> >     > 
> 


 
	[[alternative HTML version deleted]]



More information about the R-help mailing list