# [R] Background color in plots.

Marc Schwartz mschwartz at medanalytics.com
Tue May 20 15:38:40 CEST 2003

```Wolski wrote:
> How can i set the background color in a plot.
> Eg. Instead of having with i like to have a grey background.
> Eryk

For the full window background color you can set par(bg = "color") prior

If on the other hand you are referring to the plot region itself (ie.
within the plot box), it is a little trickier, but you can get the
coordinates of the plot area rectangle and color it by using:

rect(par("usr"), par("usr"), par("usr"), par("usr"), col =
"color")

In barplot2() in the gregmisc package you can set this easily for
barplots by using the 'prcol' argument.  However for most other plotting
routines you would need to plot the initial graphic, color the plot
region and then re-plot (actually add) the graphic components to the
existing plot window.

A simple example using plot():

# Create the base plotting window
# type = "n" does not plot the points
# Set the background color to "yellow"
par(bg = "yellow")
plot(1:10, type = "n")

# Now set the plot region to grey
rect(par("usr"), par("usr"), par("usr"), par("usr"), col =
"grey")

# Now plot the points on the existing window
points(1:10)

In some of the plotting functions to do the plot region color, like
boxplot(), you would have to plot the full graphic and then replot it
after setting the plot region color. In this case, you would use the
'add = TRUE' argument in boxplot() for the second call. You could
feasibly get the information from boxplot.stats() and draw the boxes and
lines, etc., but just calling boxplot() twice is easier I think.

A quick example for boxplot():

x <- rnorm(100)
par(bg = "thistle")
boxplot(x)
rect(par("usr"), par("usr"), par("usr"), par("usr"), col =
"grey")
boxplot(x, add = TRUE, col = "blue")

They are not pretty I know, but hopefully gets the points across.

You can use colors() to get a list of the available color names.

HTH,

Marc Schwartz

```