%Matplotlib inline Question

Hi,

I am having trouble understanding the use of %Matplotlib inline in my jupyter notebook.
My understanding is that I need to run %Matplotlib inline so that I can display the plots in the jupyter notebook instead of a popped up window. However, it looks like I can still display the plot without having the need to run %Matplotlib inline.
May I know why? Or is it that we dont need to run %Matplotlib anymore? Thank you so much in advance.

Example code:

import matplotlib.pyplot as plt
import pandas as pd
unrate = pd.read_csv(‘unrate.csv’)
unrate[‘DATE’] = pd.to_datetime(unrate[‘DATE’])
first_twelve = unrate[:12]
plt.plot(first_twelve[‘DATE’], first_twelve[‘VALUE’])
plt.show()

This is probably the best and most detailed answer to your question.
In short, %matplotlib inline sets the backend of matplotlib to the ‘inline’ backend.

I have kind of the same question as the one from @4voomshakalaka , and I read the stackoverflow thread, and it’s still not clear to me.

There is an illustration on the post that is supposed to show the difference between the case with %matplotlib inline and without. However, when I test on my side, either locally or on the dataquest jupyter notebook, I don’t see any differences and the plot always appear next to the cell.

Your question might be best suited as a separate post.

However, if you used %matplotlib inline once already, then the backend for your Notebook is set. So, if you remove and re-run the code, it doesn’t change anything.

You will have to restart the Kernel in order to see what affect not having %matplotlib inline has when creating plots.

Without %matplotlib inline , your plots won’t be displayed after you run a particular code cell.

1 Like