box function allows adding a box around plots. This is particularly useful when you add a new axis with the
axis function and want to draw the box again. You can also customize the color, the line type, the line width and even the type of the box.
Example 1. Adding a blue box to the plot. Note that we set
axes = FALSE to avoid displaying the default box and axes.
# Plot without axes curve(cos, -10, 10, axes = FALSE) # Blue dashed box box(col = 4, lty = 2)
Example 2. Adding a box after modifying the axes with the
# Plot without axes curve(cos, -10, 10, axes = FALSE) # Custom axis axis(1, at = c(-2 * pi, pi, -pi, 0, 2 * pi), labels = expression(-2 * pi, -pi, 0, pi, 2 * pi)) axis(2, lwd = 2, lty = 2) # Box with wide line box(lwd = 2)
Example 3. Adding a box to the whole plot.
# Plot without axes curve(cos, -10, 10) # Border box box("figure", col = 4, lwd = 4)
By default, base R plots have a box around them. This box can be customized with the
bty argument of the corresponding function. If the plotting function does not support this argument (like
boxplot) you can set it inside
bty = "o" (Default)
curve(cos, -10, 10, bty = "o")
Left and bottom:
bty = "L"
curve(cos, -10, 10, bty = "L")
Top, left and bottom:
bty = "C"
curve(cos, -10, 10, bty = "C")
Top and right:
bty = "7"
curve(cos, -10, 10, bty = "7")
Top, right and bottom:
bty = "]"
curve(cos, -10, 10, bty = "]")
Left, bottom and right:
bty = "U"
curve(cos, -10, 10, bty = "U")
bty = "n"
curve(cos, -10, 10, bty = "n")
bty argument can also be used within the
box function, which allows customizing the color, the type and the width of the box.
curve(cos, -10, 10, axes = FALSE) box(col = 2, bty = "U", lty = 2, lwd = 2)
As we pointed out before, with some functions you will need to specify the argument inside the
par function. As an example, if you want to draw a box plot without a box you can type:
par(bty = "n") # Data set.seed(1) x <- rnorm(50) # Plot boxplot(x)
"U" represent the sides of the box that are actually drawn. This is a good way to remember them. You can also set the letters in lower case instead of in upper case.