## Create Interactive 2D and 3D Plots with Matplotlib in the Jupyter Notebook

To display how to easily plot 2D and 3D interactive plots with Matplotlib and its 3D in the Jupyter notebook

### 1. 2D Interactive Plot

We can easily get zoom-able and resize-able plots using `%matplotlib notebook` magic in the notebook. It is the fastest and easiest way when you need to work with plots interactively. Let’s take a simple sine wave or sinusoid for example.

`%matplotlib notebook # or widget`
`import numpy as npimport matplotlib.pyplot as plt`
`# define an array x of 32 uniformly spaced floating point# values from 0 to 4πx = np.linspace(0,4*np.pi,32)`
`# define y as the array containing the sine values from xy = np.sin(x)`
`# make a plot fig = plt.figure(figsize=(5,3))plt.plot(x, y)plt.show()`

The plot output looks as follows:

In the interactive plot, there are toolbar icons, including stop, home, backward, forward, pan, zoom and save.

• Stop: Stop interactive plot mode
• Home: Reset original view
• Pan: Left button pans, Right button zooms x/y fixes axis, CTRL fixes aspect
• Back: Back to previous view
• Forward: Forward to next view
• Zoom: Zoom to x/y fixes axis, CTRL fixes aspect

However, the problem is that `%matplotlib notebook` failed to download figures if you use Chrome. This is because Chrome removed the ability for pages to open “data:”. Thus, we should use other browsers.

### 2. 3D Interactive Plot

To make the 3D plots interactive, we should install another library called `ipympl`i.e. interactive python matplotlib. To install it directly in a Jupyter notebook, we can use the following command:

`!pip install ipympl`

The installation process looks as follows:

`Collecting ipympl  Downloading ipympl-0.9.2-py2.py3-none-any.whl (510 kB)Requirement already satisfied: pillow in c:\users\sigmund\anaconda3\lib\site-packages (from ipympl) (9.0.1)Requirement already satisfied: ipywidgets<9,>=7.6.0 in c:\users\sigmund\anaconda3\lib\site-packages (from ipympl) (7.6.5)Requirement already satisfied: ipython<9 in c:\users\sigmund\anaconda3\lib\site-packages (from ipympl) (8.2.0)Requirement already satisfied: ipython-genutils in ...`
`>ipython<9->ipympl) (0.2.2)Installing collected packages: ipymplSuccessfully installed ipympl-0.9.2`

The last three lines show that `ipympl-0.9.2` was successfully installed. Then we create 3d plot using matplotlib in python with the following code snippet.

`# for creating a responsive plot%matplotlib notebook# importing required librariesimport numpy as np  from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt# creating random datasetx = np.linspace(0,4*np.pi,1000)y = np.sin(x) z = 15 * np.random.random(1000)# creating figurefig = plt.figure()ax = Axes3D(fig)# creating the plotplot_scatter = ax.scatter(x, y, z,color='r')# setting title and labelsax.set_xlabel('x-axis')ax.set_ylabel('y-axis')ax.set_zlabel('z-axis')# displaying the plotplt.show()`

The outcome looks as follows:

### 3. Online Course

If you are interested in learning Jupyter notebook in details, you are welcome to enrol one of my course Practical Jupyter Notebook from Beginner to Expert.