You can then run this script from the command-line prompt, which will result in a window opening with your figure displayed:
$ python myplot.py
plt.show() command does a lot under the hood, as it must interact with your system's interactive graphical backend.
The details of this operation can vary greatly from system to system and even installation to installation, but matplotlib does its best to hide all these details from you.
One thing to be aware of: the
plt.show() command should be used only once per Python session, and is most often seen at the very end of the script.
show() commands can lead to unpredictable backend-dependent behavior, and should mostly be avoided.
Plotting from an IPython shell
It can be very convenient to use Matplotlib interactively within an IPython shell (see IPython: Beyond Normal Python
IPython is built to work well with Matplotlib if you specify Matplotlib mode.
To enable this mode, you can use the
magic command after starting
In : %matplotlib
Using matplotlib backend: TkAgg
In : import matplotlib.pyplot as plt
At this point, any
plt plot command will cause a figure window to open, and further commands can be run to update the plot.
Some changes (such as modifying properties of lines that are already drawn) will not draw automatically: to force an update, use
plt.show() in Matplotlib mode is not required.
Plotting from an IPython notebook
The IPython notebook is a browser-based interactive data analysis tool that can combine narrative, code, graphics, HTML elements, and much more into a single executable document (see IPython: Beyond Normal Python
Plotting interactively within an IPython notebook can be done with the
%matplotlib command, and works in a similar way to the IPython shell.
In the IPython notebook, you also have the option of embedding graphics directly in the notebook, with two possible options:
%matplotlib notebook will lead to interactive plots embedded within the notebook
%matplotlib inline will lead to static images of your plot embedded in the notebook
For this book, we will generally opt for