[R] Binned line plot

Jim Lemon jim at bitwrit.com.au
Tue Nov 22 08:51:05 CET 2011


On 11/22/2011 04:29 PM, Jeffrey Joh wrote:
>
> I have a scatter plot with 10000 points.  I would like to add a line that bins every 50 points and connects the average of each bin.  I'm looking for something similar to line type "m" in Stata.
>
> With this dataset of 10000 points, I would also like to bin the data and make boxplots at certain intervals, so that I have a set of boxplots to represent each bin.  I would also like the width of each box to be proportional to the number of points in each bin.
>
> How can I make these plots?  Is there a simple package to use?
>
Hi Jeffrey,
There are three possibilities that come to mind:

1) You want to bin the points based on their order in the data frame.

2) You want to bin the points based on the x or y values of the coordinates.

3) You want to bin the points based on the x _and_ y values of the 
coordinates.

Number 1 is trivial and has already been answered (assume a two column 
data frame of coordinates named "xypoints").

#first point - set up a loop to get a vector of averages
meanx<-rep(0,200)
meany<-rep(0,200)
for(index in 1:200) {
  start<-1+50*(index-1)
  meanx[index]<-mean(xypoints[start:(start+49),"x"])
  meany[index]<-mean(xypoints[start:(start+49),"y"])
}
plot(meanx,meany,type="l")

Number 2 requires that you sort the pairs based on the value of the one 
you want, then apply the same process as 1 to the sorted pairs. Number 3 
is somewhat more difficult.

I don't do this much, and some of the people who do map analysis will 
probably come up with a much better method.

Find the most extreme point.
Find the 49 points closest to that point to constitute group 1.
Remove those points from the data frame.
Go back to the first step if there are any points left.

You will end up with 200 groups of points that are spatially grouped. 
Get the centroids and plot as above.

Another wild guess from

Jim



More information about the R-help mailing list