# Matplotlib 3D Line Plot

This tutorial demonstrates creating a 3D plot in Matplotlib and how to create it with multiple colors in Matplotlib.

## Create a 3D Line Plot in Matplotlib

The concept of graphing in three dimensions exists everywhere. The pipes flowing the water, oil, gasoline, or whatever we are piping are three-dimensional with length, width and height.

So we can also create graphs or plots using the `mpl_toolkits` tool that makes it easier to create 3D plots in Matplotlib.

Let’s get started by importing the following modules.

``````import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d
``````

Now we have to specify coordinates, but before we can start plotting in three dimensions, we need to create an axis, and this axis has to have a 3D `projection` parameter. We have different projections.

We do not have only 3D projections. There is a large list of different projections that we can use, so if we want to create a new axis, we need to call the `axes()` method.

To create a 3D plot, we can pass a `projection` parameter and set the value as `"3d"`.

``````axes=plot.axes(projection="3d")
``````

We create data for three dimensions using the `arange()` numpy method. The `arange()` is you choose a starting point, an ending point, and the step size.

We go to do the same thing for the `y_data`. We are using some math function on the `z` coordinate to get a better result in our plot.

``````axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)
``````

Full Code Example:

``````import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)

axes.plot(x_data,y_data,z_data)
plot.show()
``````

Output:

## Create a Multiple Colors 3D Line Plot in Matplotlib

This example demonstrates how to use multiple colors 3D line plots. In the following code, we are just separating every line segment and iterating a loop over six predefined colors.

``````colors = 'rgbcmy'
for i in range(len(x_data)-1):
axes.plot(x_data[i:i+2], y_data[i:i+2], z_data[i:i+2], color=colors[i%6] )
# ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])
``````

Full Code Example:

``````import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)

colors = 'rgbcmy'
for i in range(len(x_data)-1):
axes.plot(x_data[i:i+2], y_data[i:i+2], z_data[i:i+2], color=colors[i%6] )
# ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])

plot.show()
``````

Output:

Click here to read detailed documentation about 3D plots.

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn