Skip to contents

visreg is an R package for displaying the results of a fitted model in terms of how a predictor variable x affects an outcome y. The implementation of visreg takes advantage of object-oriented programming in R, meaning that it works with virtually any type of formula-based model in R provided that the model class provides a predict() method: lm, glm, gam, rlm, nlme, lmer, coxph, svm, randomForest and many more.


To install the latest release version from CRAN:

To install the latest development version from GitHub:



The basic usage is that you fit a model, for example:

fit <- lm(Ozone ~ Solar.R + Wind + Temp, data=airquality)

and then you pass it to visreg:

visreg(fit, "Wind")


A more complex example, which uses the gam() function from mgcv:

airquality$Heat <- cut(airquality$Temp, 3, labels=c("Cool", "Mild", "Hot"))
fit <- gam(Ozone ~ s(Wind, by=Heat, sp=0.1), data=airquality)
visreg(fit, "Wind", "Heat", gg=TRUE, ylab="Ozone")


A number of options for surface plots are also provided, such as rgl plots:

fit <- lm(Ozone ~ Solar.R +ns(Wind, df=2)*ns(Temp, df=2), data=airquality)
visreg2d(fit, "Wind", "Temp", plot.type="rgl")

If your browser supports it, you should be able to interact with above figure (click and drag to rotate).

If you have a question or feature request, please submit an issue.

More information

The documentation provided here focuses on syntax, options, and user interface. For more details on the statistical methodology and implementation, see: