## generate some data
set.seed(111)
n <- 500
## regressors
dat <- data.frame(z = runif(n, -3, 3), w = runif(n, 0, 6))
## response
dat$y <- with(dat, 1.5 + cos(z) * sin(w) + rnorm(n, sd = 0.6))
## Not run:
# ## estimate model
# b <- bayesx(y ~ sx(z, w, bs = "te", knots = 5), data = dat, method = "REML")
# summary(b)
#
# ## plot estimated effect
# plot(b, term = "sx(z,w)")
#
# ## extract fitted effects
# f <- fitted(b, term = "sx(z,w)")
#
# ## now use plot3d
# plot3d(f)
# plot3d(f, swap = TRUE)
# plot3d(f, residuals = TRUE)
# plot3d(f, resid = TRUE, cex.resid = 0.1)
# plot3d(f, resid = TRUE, pch = 2, col.resid = "green3")
# plot3d(f, resid = TRUE, c.select = 95, cex.resid = 0.1)
# plot3d(f, resid = TRUE, c.select = 80, cex.resid = 0.1)
# plot3d(f, grid = 100, border = NA)
# plot3d(f, c.select = 95, border = c("red", NA, "green"),
# col.surface = c(1, NA, 1), resid = TRUE, cex.resid = 0.2)
#
# ## now some image and contour
# plot3d(f, image = TRUE, legend = FALSE)
# plot3d(f, image = TRUE, legend = TRUE)
# plot3d(f, image = TRUE, contour = TRUE)
# plot3d(f, image = TRUE, contour = TRUE, swap = TRUE)
# plot3d(f, image = TRUE, contour = TRUE, col.contour = "white")
# plot3d(f, contour = TRUE)
# op <- par(no.readonly = TRUE)
# par(mfrow = c(1, 3))
# plot3d(f, image = TRUE, contour = TRUE, c.select = 3)
# plot3d(f, image = TRUE, contour = TRUE, c.select = "Estimate")
# plot3d(f, image = TRUE, contour = TRUE, c.select = "97.5
# par(op)
# ## End(Not run)
## another variation
dat$f1 <- with(dat, sin(z) * cos(w))
with(dat, plot3d(cbind(z, w, f1)))
## same with formula
plot3d(sin(z) * cos(w) ~ z + w, zlab = "f(z,w)", data = dat)
plot3d(sin(z) * cos(w) ~ z + w, zlab = "f(z,w)", data = dat,
ticktype = "detailed")
## play with palettes
plot3d(sin(z) * cos(w) ~ z + w, col.surface = heat.colors, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = topo.colors, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = cm.colors, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = rainbow, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = terrain.colors, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = rainbow_hcl, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = diverge_hcl, data = dat)
plot3d(sin(z) * cos(w) ~ z + w, col.surface = sequential_hcl, data = dat)
plot3d(sin(z) * cos(w) ~ z + w,
col.surface = rainbow_hcl(n = 99, c = 300, l = 80, start = 0, end = 100),
data = dat)
plot3d(sin(z) * cos(w) ~ z + w,
col.surface = rainbow_hcl(n = 99, c = 300, l = 80, start = 0, end = 100),
image = TRUE, grid = 200, data = dat)
Run the code above in your browser using DataLab