This function adds a reference grid to an RGL plot.

grid3d(side, at = NULL, col = "gray", lwd = 1, lty = 1, n = 5)



Where to put the grid; see the Details section.


How to draw the grid; see the Details section.


The color of the grid lines.


The line width of the grid lines. (Currently only lty = 1 is supported.)


The line type of the grid lines.


Suggested number of grid lines; see the Details section.


This function is similar to grid in classic graphics, except that it draws a 3D grid in the plot.

The grid is drawn in a plane perpendicular to the coordinate axes. The first letter of the side argument specifies the direction of the plane: "x", "y" or "z" (or uppercase versions) to specify the coordinate which is constant on the plane.

If at = NULL (the default), the grid is drawn at the limit of the box around the data. If the second letter of the side argument is "-" or is not present, it is the lower limit; if "+" then at the upper limit. The grid lines are drawn at values chosen by pretty with n suggested locations. The default locations should match those chosen by axis3d with nticks = n.

If at is a numeric vector, the grid lines are drawn at those values.

If at is a list, then the "x" component is used to specify the x location, the "y" component specifies the y location, and the "z" component specifies the z location. Missing components are handled using the default as for at = NULL.

Multiple grids may be drawn by specifying multiple values for side or for the component of at that specifies the grid location.


If the scene is resized, the grid will not be resized; use abclines3d to draw grid lines that will automatically resize.


A vector or matrix of object ids is returned invisibly.


Ben Bolker and Duncan Murdoch

See also


x <- 1:10
y <- 1:10
z <- matrix(outer(x - 5, y - 5) + rnorm(100), 10, 10)
persp3d(x, y, z, col = "red", alpha = 0.7, aspect = c(1, 1, 0.5))
grid3d(c("x", "y+", "z"))