# 3D plotly Graph in R (3 Examples)

Hi! This tutorial will show you how to build 3D plotly graphs in the R programming language.

We will be building a 3D scatter plot, 3D line plot, and a 3D mesh plot.

Here is an overview:

Let’s dive into the R code!

## Install & Load plotly & dplyr

To install and load the R plotly library and dplyr library, we will need to run the code below in either the R Studio IDE or in any other preferred code editor that can run R:

```# install plotly & dplyr
install.packages(c("plotly", "dplyr"))

library(plotly)

library(dplyr)```

The dplyr library is the foremost library in R programming for data analysis and data manipulation, and it also enables us to use the pipe operator to pipe lines of code together and run them in one chunk.

Now, with plotly and dplyr installed and loaded into our R environment, we can go on to create our example dataset.

## Create Demo Dataset

We will make use of the `mtcars` dataset, which comes pre-loaded inside R Studio. But if you are not using R Studio, you can download the dataset as a CSV file here.

Save the file in your current working directory, then run the code below to load it into your R environment:

`mtcars = read.csv("path to csv file")`

You can preview the first 10 rows of the dataset if you want by running `mtcars |> head(10)`.

With the example dataset loaded, we can now build 3D visualizations!

## Example 1: Build 3D Scatter Plot

In this first example, we will build a 3D scatter plot. Therefore, run the code below to build the plot:

```fig <- mtcars |>
plot_ly(x = ~mpg, y = ~disp, z = ~hp) |>
layout(scene = list(xaxis = list(title = "Mile Per Gallon"),
yaxis = list(title = "Displacement"),
zaxis = list(title = "Horse Power")),
annotations = list(
x = 1.13,
y = 1.05,
text = 'Miles/(US) gallon',
xref = 'paper',
yref = 'paper',
showarrow = FALSE
))

fig```

In the above example, we passed the `mtcars` data frame to the plot_ly() function, and defined the `x`, `y`, and `z` axes using the columns of interest in the data frame. Next, we added markers to the plot using the add_markers() function.

Finally, we formatted the plot layout using the layout() function. In that function, we passed a list defining the axis labels for the plot and also passed a list for annotating the plot as well, which displays information when you hover over the plot.

## Example 2: Build 3D Line Plot

In this next example, we will build a 3D line plot. Run the code below to do so:

```fig <- mtcars |>
plot_ly(x = ~mpg, y = ~disp,z = ~hp, type = "scatter3d", mode = "lines",
opacity = 1, line = list(width = 6, color = "green"))

fig```

In the `plot_ly()` function above, we used the same `x`, `y`, and `z` axes arguments as in the previous example, but here we defined the type of the plot as “scatter3d” and then set the `modes =` argument to “lines” in order to create a line plot.

Next, we passed a list specifying the width and color of the line plot to the `line =` argument in order to style the plot.

## Example 3: Build 3D Mesh Plot

In this final example, we will build a 3D mesh plot. Run the code below in your IDE to build it:

```fig <- mtcars |>
plot_ly(x = ~mpg, y = ~disp, z = ~hp, type = "mesh3d")

fig```

As you can see, the code to build the mesh plot is a very simple one. All we needed to do was define the `x`, `y`, and `z` axes in the `plot_ly()` function, and specify the type of plot we want to build as “mesh3d”.

## Video, Further Resources & Summary

Do you need more explanations on how to build 3D graphs in R? Then you should have a look at the following YouTube video of the Statistics Globe YouTube channel.

In the video, we explain how to build 3D graphs in R.

I hope you found this tutorial helpful! If yes, then make sure to check out other interesting R plotly tutorials on Statistics Globe, such as these ones:

This post has shown how to build 3D graphs in R. One feature that makes it interesting to visualize data as 3D plots is that they can be panned. This means you can right-click and hold down your mouse, then drag it around in order to get 360-degree views of your 3D plots. That way, you get a holistic view of your data points.

This page was created in collaboration with Ifeanyi Idiaye. You might check out Ifeanyi’s personal author page to read more about his academic background and the other articles he has written for the Statistics Globe website.

Subscribe to the Statistics Globe Newsletter

• Zulfiya
September 12, 2023 6:43 am

Very cool! Tell me please, is it possible to depict the 3rd drawing in the form of water?

• September 12, 2023 11:11 am