This vignette contains part II of a set of examples on how to use
clugenr
in 3D. Examples require the following setup
code:
library(clugenr) # The clugenr library
options(rgl.useNULL = TRUE) # Create RGL plots in systems without displays (CI)
library(rgl)
setupKnitr(autoprint = TRUE) # Render RGL plots directly on generated page
# Load helper functions for plotting examples
source("plot_examples_3d.R", local = knitr::knit_global())
# Keep examples reproducible in newer R versions
RNGversion("3.6.0")
The 3D examples were plotted with the plot_examples_3d()
function available here.
<- 456 seed
proj_dist_fn = "norm"
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 0.0, seed = seed)
e061 <- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 1.0, seed = seed)
e062 <- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 3.0, seed = seed) e063
plot_examples_3d(list(e = e061, t = "e061: lateral_disp = 0"),
list(e = e062, t = "e062: lateral_disp = 1"),
list(e = e063, t = "e063: lateral_disp = 3"))
proj_dist_fn = "unif"
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 0.0, seed = seed,
e064 proj_dist_fn = "unif")
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 1.0, seed = seed,
e065 proj_dist_fn = "unif")
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 3.0, seed = seed,
e066 proj_dist_fn = "unif")
plot_examples_3d(list(e = e064, t = "e064: lateral_disp = 0"),
list(e = e065, t = "e065: lateral_disp = 1"),
list(e = e066, t = "e066: lateral_disp = 3"))
# Custom proj_dist_fn: point projections placed using the Beta distribution
<- function(len, n) len * rbeta(n, 0.1, 0.1) - len / 2 proj_beta
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 0.0, seed = seed,
e067 proj_dist_fn = proj_beta)
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 1.0, seed = seed,
e068 proj_dist_fn = proj_beta)
<- clugen(3, 4, 1000, c(1, 0, 0), pi / 2, c(20, 20, 20), 13, 2, 3.0, seed = seed,
e069 proj_dist_fn = proj_beta)
plot_examples_3d(list(e = e067, t = "e067: lateral_disp = 0"),
list(e = e068, t = "e068: lateral_disp = 1"),
list(e = e069, t = "e069: lateral_disp = 3"))
<- 12321 seed
# Custom proj_dist_fn: point projections placed using the Beta distribution
<- function(len, n) len * rbeta(n, 0.1, 0.1) - len / 2 proj_beta
point_dist_fn = "n-1"
<- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed)
e070 <- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed,
e071 proj_dist_fn = "unif")
<- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed,
e072 proj_dist_fn = proj_beta)
plot_examples_3d(list(e = e070, t = "e070: proj_dist_fn = 'norm' (default)"),
list(e = e071, t = "e071: proj_dist_fn = 'unif'"),
list(e = e072, t = "e072: custom proj_dist_fn (Beta dist.)"))
point_dist_fn = "n"
<- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed,
e073 point_dist_fn = "n")
<- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed,
e074 point_dist_fn = "n", proj_dist_fn = "unif")
<- clugen(3, 5, 1500, c(1, 0, 0), pi / 3, c(20, 20, 20), 22, 3, 2, seed = seed,
e075 point_dist_fn = "n", proj_dist_fn = proj_beta)
plot_examples_3d(list(e = e073, t = "e073: proj_dist_fn = 'norm' (default)"),
list(e = e074, t = "e074: proj_dist_fn = 'unif'"),
list(e = e075, t = "e075: custom proj_dist_fn (Beta dist.)"))