--- title: "Creating a plot from scratch" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Creating a plot from scratch} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- 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. ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} library(r3js) ``` ```{r, out.width="100%", out.height="400px"} # 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) ```