Setting plot background colors

The default background color of all plots in R is white, which is usually the best choice as it is least distracting for data analysis. However, sometimes we may wish to use another color. We will see how to set background colors in this recipe.

Getting ready

All you need to try out this recipe is to run R and type the recipe at the command prompt. You can also choose to save the recipe as a script so that you can use it again later on.

How to do it...

To set the plot background color to gray we use the bg argument in the par() command:

par(bg="gray")
plot(rnorm(100))
How to do it...

How it works...

The par() command's bg argument sets the background color for the entire plotting area including the margins for any subsequent plots on the same device. Until the plotting device is closed or a new device is initiated, the background color stays the same.

There's more...

It is more likely that we want to set the background color only for the plot region (within the axes) but there is no straightforward way to do this in R. We must draw a rectangle of the desired color in the background and then make our graph on top of it:

plot(rnorm(1000),type="n")
x<-par("usr")
rect(x[1],x[3],x[2],x[4],col="lightgray ")
points(rnorm(1000))

First we draw the plot with type set to "n" so that the plotted elements are invisible. This does not show the graph points or lines but sets the axes up, which we need for the next step.

par("usr") gets us the co-ordinates of the plot region in a vector of form c(xleft, xright, ybottom, ytop). We then use the rect() function to draw a rectangle with a fill color that we wish to use for the plot background. Note that rect() takes a set of arguments representing the xleft, ybottom, xright, ytop co-ordinates. So we must pass the values we obtained from par("usr") in the correct order. Then, finally we redraw the graph with the correct type (points or lines).

There's more...
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset