[R] Creating "Envelope" around a plot

Duncan Murdoch
Mon, 02 Nov 2015 15:03:39 -0000

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