The easiest way to create a 3D plot in R is to use the persp() function.
persp(x, y, z)
The following examples show how to use this function in practice.
Example 1: Basic 3D Plot
The following code shows how to create a basic 3D plot:
#define x and y x <- -10:10 y <- -10:10 #define function to create z-values z_values <- function(x, y) { sqrt(x ^ 2 + y ^ 2) } #create z-values z = outer(x, y, z_values) #create 3D plot persp(x, y, z)
Example 2: Custom 3D Plot
The following code shows how to customize the axis labels, title, color, and shade of the plot:
#define x and y x <- -10:10 y <- -10:10 #define function to create z-values z_values <- function(x, y) { sqrt(x ^ 2 + y ^ 2) } #create z-values z = outer(x, y, z_values) #create 3D plot persp(x, y, z, xlab='X Variable', ylab='Y Variable', zlab='Z Variable', main='3D Plot', col='pink', shade=.4)
Example 3: Rotate the 3D Plot
The following code shows how to rotate the 3D plot to make it easier to view, using the theta and phi arguments:
#define x and y x <- -10:10 y <- -10:10 #define function to create z-values z_values <- function(x, y) { sqrt(x ^ 2 + y ^ 2) } #create z-values z = outer(x, y, z_values) #create 3D plot persp(x, y, z, xlab='X Variable', ylab='Y Variable', zlab='Z Variable', main='3D Plot', col='pink', shade=.4, theta = 30, phi = 15)
Example 4: Add Tick Marks to the 3D Plot
The following code shows how to use the ticktype argument to add tick marks with labels to each axis:
#define x and y x <- -10:10 y <- -10:10 #define function to create z-values z_values <- function(x, y) { sqrt(x ^ 2 + y ^ 2) } #create z-values z = outer(x, y, z_values) #create 3D plot persp(x, y, z, xlab='X Variable', ylab='Y Variable', zlab='Z Variable', main='3D Plot', col='pink', shade=.4, theta = 30, phi = 15, ticktype='detailed')
Additional Resources
The following tutorials explain how to create other common charts in R:
How to Plot Multiple Lines in One Chart in R
How to Plot Multiple Boxplots in One Chart in R
How to Create a Pareto Chart in R
How to Create Radar Charts in R