In real-world data science problems we always have datasets with multiple dimensions or features.

In such cases, we can perform univariate visualization or multivariate visualization, where we may plot 2 or 3 attributes together.

We will use the mplot3d toolkit provided by matplotlib.

The mplot3d toolkit adds capabilities for creating a simple 3D plot by supplying an axes object that can create a 2D projection of a 3D scene.

The resulting graph will have the same look and feel as regular 2D plots.

Let us take an example to understand this. We will create a dataset of 3 features to create a 3D plot.

Importing the libraries

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

 

Creating the dataset

We will create a dataset of 3 feature vectors, each containing 100 random values, using numpy.random module.

x1 = np.random.rand(100)
x2 = np.random.rand(100)
x3 = np.random.rand(100)

 

Creating the plot

Finally, for creating the 3D plot we will use the Axes3D.scatter() python function. This function takes 3 attributes as arguments.

We first prepare the XYZ plane and name the respective axes as “x1”, “x2” & “x3”.

Any coordinate on the XYZ plane is actually a point (x1, x2, x3) on the coordinate axes.

fig = plt.figure()
axes = Axes3D(fig)
axes.set_title('3D plot in MatplotLib', size=14)
axes.set_xlabel('x1')
axes.set_ylabel('x2')
axes.set_zlabel('x3')
axes.w_xaxis.set_ticklabels(())
axes.w_yaxis.set_ticklabels(())
axes.w_zaxis.set_ticklabels(())
axes.scatter(x1, x2, x3)