View source: R/surface_matrix.gg_partial_coplot.R
surface_matrix | R Documentation |
gg_partial_coplot
objectConstruct a set of (x, y, z) matrices for surface plotting a
gg_partial_coplot
object
surface_matrix(dta, xvar)
dta |
a gg_partial_coplot object containing at least 3 numeric columns of data |
xvar |
a vector of 3 column names from the data object, in (x, y, z) order |
To create a surface plot, the plot3D::surf3D
function expects
3 matrices of n.x by n.y. Take the p+1 by n gg_partial_coplot
object,
and extract and construct the x, y and z matrices from the provided
xvar
column names.
## Not run: ## From vignette(randomForestRegression, package="ggRandomForests") data(Boston, package="MASS") rfsrc_boston <- randomForestSRC::rfsrc(medv~., Boston) varsel_boston <- var.select(rfsrc_boston) rm_pts <- quantile_pts(rfsrc_boston$xvar$rm, groups = 9, intervals = TRUE) partial_boston_surf <- lapply(rm_pts, function(ct) { rfsrc_boston$xvar$rm <- ct randomForestSRC::plot.variable( rfsrc_boston, xvar.names = "lstat", time = 1, npts = 10, show.plots = FALSE, partial = TRUE ) }) # Instead of groups, we want the raw rm point values, # To make the dimensions match, we need to repeat the values # for each of the 50 points in the lstat direction rm.tmp <- do.call(c,lapply(rm_pts, function(grp) {rep(grp, length(partial_boston_surf))})) # Convert the list of plot.variable output to partial_surf <- do.call(rbind,lapply(partial_boston_surf, gg_partial)) # attach the data to the gg_partial_coplot partial_surf$rm <- rm.tmp # Transform the gg_partial_coplot object into a list of three named matrices # for surface plotting with plot3D::surf3D srf <- surface_matrix(partial_surf, c("lstat", "rm", "yhat")) ## End(Not run) ## Not run: # surf3D is in the plot3D package. library(plot3D) # Generate the figure. surf3D(x=srf$x, y=srf$y, z=srf$z, col=topo.colors(10), colkey=FALSE, border = "black", bty="b2", shade = 0.5, expand = 0.5, lighting = TRUE, lphi = -50, xlab="Lower Status", ylab="Average Rooms", zlab="Median Value" ) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.