[R] help with recalling data points in a specific region of the plot

David Winsemius dwinsemius at comcast.net
Tue Aug 25 03:58:18 CEST 2009

On Aug 24, 2009, at 6:50 PM, Edward Chen wrote:

> Thank you so much for your reply. I apologize for not making my  
> question clearer.
> The problem I have right now is not just a matrix. I have a plot in  
> which the X and Y are both calculated by other functions before the  
> plot. After reviewing the plot, there are some areas of the plot  
> that do not look correct. I just want to know if there's a way to  
> know what the x and y coordinate of those points are and display  
> them on the graph if possible. the specific region that I am looking  
> for is 0<x<1 and y<0.5. Hope this would clarify some confusions.
> Thank you again!

Two thoughts
a)  which would seem that the blindingly obvious strategy ... no  
dataframe? Then make one:

df1 <- data.frame(X =X, Y=Y)

    .... and proceed as suggested.

... or try .... still using your original limits:

with(df1[df1$X>5&df1$Y>5, ], text(X, Y,
          paste( sprintf(fmt="%0.2f", X),  sprintf(fmt="%0.2f", Y) ) ) )

... or print their row numbers ....

df1$Rw <- 1:nrow(df1)

with(df1[df1$X>5&df1$Y>5, ], text( X, Y, paste("row=", Rw) ) )

b) the dataframeless approach:  create an index for the joint  
conditions on X and Y and then use that index to reference their  
values. To use you new conditions, that would be;

idx <- X > 0 & X < 1 & Y < 0.5
plot(X[idx], Y[idx], col="red"")

... or print the (X,Y) values with sprintf as illustrated above.

> On Mon, Aug 24, 2009 at 10:52 AM, David Winsemius <dwinsemius at comcast.net 
> > wrote:
> On Aug 24, 2009, at 12:55 PM, Edward Chen wrote:
> Hi all,
> Is there a quick way to display or recall data points from a  
> specific region
> on the plot? For example I want the points from x>5 and y>5?
> Thank you very much!
> Your question is pretty light on specifics but assuming that you  
> have columns  x and y  in a dataframe, df1, then in ordinary  
> graphics you could just execute this after another plotting function  
> has been performed:
> with(subset(df1, x>5 & y>5), points(x,y, col="red") )
> # I generally make my points smaller with cex=0.2 or cex=0.1
> subset(f1, x>5 & y>5)[ , c("x","y")]
> # should "recall" the values, if my wetware R interpreter is working  
> properly.
> -- 
> Edward Chen

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

More information about the R-help mailing list