[R] modify rectangle color from image

Marc Schwartz marc_schwartz at comcast.net
Wed Jan 24 23:31:53 CET 2007


On Wed, 2007-01-24 at 16:37 -0500, Saurav Pathak wrote:
> Hi,
> 
> I need some suggestion on how I could modify the color on some
> rectangle that I have created using "image".
> 
> In other words, I have a 5x5 matrix, say, m.  
> 
>         m <- matrix(rnorm(25), nrow=5)
> 
> I create a grid of rectangles by:
> 
>         image(m)
> 
> Now I want to change the color of rectangle (3,3) to blue. 
> 
> I don't know how this could be done, and searching the web has given
> me no hint.  
> 
> Thanks for your help.

Try this:

m <- matrix(rnorm(25), nrow = 5)
image(m)

# Get the plot region coords
USR <- par("usr")

# Calc the length of a side of a square
SIDE <- abs(USR[1] - USR[2]) / 5

# Draw the rect using the appropriate offsets
rect(USR[1] + (SIDE * 2), USR[3] + (SIDE * 2), 
     USR[1] + (SIDE * 3), USR[3] + (SIDE * 3), col = "blue")


See ?par and review "usr", then see ?rect

par("usr") gives you the coordinates of the plot region. Then just do
the math to calculate the coordinates of each rectangle.

HTH,

Marc Schwartz



More information about the R-help mailing list