plot-from-scratch.Rmd
When setting up a plot to later add further elements to, generally
your life will be made easier if you still use the
plot3js()
function to achieve basic plot setup but do not
supply and x, y or z data to plot.
However it is of course possible to call the lower level functions
that plot3js()
uses but to call them directly as
demonstrated in a simple example below.
library(r3js)
# Generate data
x <- runif(20, 0, 10)
y <- runif(20, 0, 20)
z <- runif(20, 0, 1)
# Initialise new plot
data3js <- plot3js.new()
# Set plot dimensions and aspect ratios
data3js <- plot3js.window(
data3js,
xlim = c(0,10),
ylim = c(0,20),
zlim = c(0,1),
aspect = c(1, 1, 1)
)
# Add box
data3js <- box3js(data3js, col = "grey50")
# Add axes
data3js <- axis3js(data3js, side = "x")
data3js <- axis3js(data3js, side = "y")
data3js <- axis3js(data3js, side = "z")
# Add axes grids
data3js <- grid3js(data3js, col = "grey80")
# Plot points
data3js <- points3js(data3js, x, y, z, col = rainbow(20))
# Show the plot
r3js(data3js)