Learn R Programming

rgl (version 1.3.1)

plot3d.lm: Method for plotting simple linear fit

Description

This function provides several plots of the result of fitting a two-predictor model.

Usage

# S3 method for lm
plot3d(x, 
       which = 1, 
       plane.col = "gray", plane.alpha = 0.5,
       sharedMouse = TRUE, 
       use_surface3d, 
       do_grid = TRUE,
       grid.col = "black", 
       grid.alpha = 1,
       grid.steps = 5,
       sub.steps = 4,
       vars = get_all_vars(terms(x), x$model),
       clip_to_density = 0,
       ...)

Value

Called for the side effect of drawing one or more plots.

Invisibly returns a high-level vector of object ids. Names of object ids have the plot number (in drawing order) appended.

Arguments

x

An object inheriting from class "lm" obtained by fitting a two-predictor model.

which

Which plot to show? See Details below.

plane.col, plane.alpha

These parameters control the colour and transparency of a plane or surface.

sharedMouse

If multiple plots are requested, should they share mouse controls, so that they move in sync?

use_surface3d

Use the surface3d function to plot the surface rather than planes3d. This allows curved surfaces to be shown. The default is FALSE if the model looks like a simple 2 parameter linear fit, otherwise TRUE.

do_grid

Plot a grid.

grid.col, grid.alpha, grid.steps

Characteristics of the grid.

sub.steps

If use_surface3d is TRUE, use an internal grid of grid.steps*sub.steps to draw the surface. sub.steps > 1 allows curvature within facets. Similarly, if do_grid is TRUE, it allows curvature within grid lines.

vars

A dataframe containing the variables to plot in the first three columns, with the response assumed to be in column 1. See the Note below.

clip_to_density

If positive, the surface, plane or grid will be clipped to a region with sufficient data.

...

Other parameters to pass to the default plot3d method, to control the appearance of aspects of the plot other than the plane.

Author

Duncan Murdoch

Details

Three plots are possible, depending on the value(s) in which:

  1. (default) Show the points and the fitted plane or surface.

  2. Show the residuals and the plane at z = 0.

  3. Show the predicted values on the fitted plane or surface.

If clip_to_density is positive, then the surface, plane or grid will be clipped to the region where a non-parametric density estimate (using MASS::kde2d), normalized to have a maximum value of 1, is greater than the given value. This will suppress parts of the plot that aren't supported by the observed data.

Examples

Run this code
open3d()
ids <- plot3d(lm(mpg ~ wt + qsec, data = mtcars), which = 1:3)
names(ids)

open3d()
plot3d(lm(mpg ~ wt + I(wt^2) + qsec, data = mtcars))

open3d()
# Specify vars in the order:  response, pred1, pred2.
plot3d(lm(mpg ~ poly(wt, 3) + qsec, data = mtcars), 
       vars = mtcars[,c("mpg", "wt", "qsec")])
       
open3d()
# Clip parts of the plot with few (wt, qsec) points
plot3d(lm(mpg ~ poly(wt, 3) + qsec, data = mtcars), 
       vars = mtcars[,c("mpg", "wt", "qsec")],
       clip_to_density = 0.1)       

Run the code above in your browser using DataLab