# Matplotlib Figures, Plots, and Axes
A figure contains one or more groups of axes.
Each Axes, which can be 2-dimensional or 3-dimensional, contains zero or more plots.
A plot is the thing we normally call "graph" or "chart".
Figure is the top level container. Inside a figure we can include one or more
Axes classes, each of which can have one or more plots.
Figure is what contains everything else, and it is also what we show when we want to display the graph to the screen:
import matplotlib.pyplot as plt plt.figure() plt.show()
Here we've used the
pyplot library to create a new
Figure. When we do this,
pyplot automatically "selects" the figure, and it becomes the active figure. Every other function in the
pyplot library will act on that figure until another one is selected.
But note if you run that code, you'll see no output.
The figure is empty, so matplotlib doesn't display a window.
We must first add at least a set of axes to the figure.
Axes, which is a matplotlib class, is where plots are drawn. You can have multiple plots drawn on a single pair of axes, as below:
Or you can also have multiple
Axes in one figure, as below:
Let's start off by adding a set of 2-dimensional axes to our figure:
import matplotlib.pyplot as plt plt.figure() plt.axis([0, 6, 0, 20]) plt.show()
Here we've used
plt.axis() to define the values in our x and y axes. The x axis goes from
6, and the y axis goes from
plt.axis() acts on the currently active figure, which is the one that got created when we called
At the moment there's nothing drawn in the canvas though, so let's do that!
Plots can be drawn on a set of axes, and each plot needs to specify data points for the axes that it is drawn on.
For example, if we have 2-dimensional axes, then for each data point we need to specify its x and y coordinates.
import matplotlib.pyplot as plt plt.figure() plt.axis([0, 6, 0, 20]) plt.plot([1, 2, 3, 4], [3, 5, 9, 25]) plt.show()
Here, we use
.plot() to draw 4 points in our axes. The points drawn are:
Note that the y axis only goes up to 20 though, so therefore this plot will be clipped at 20 in the y axis, and it won't be shown in its entirety:
If we don't specify the axes dimensions ourselves,
.plot() will do it for us based on the provided data:
import matplotlib.pyplot as plt plt.figure() plt.plot([1, 2, 3, 4], [3, 5, 9, 25]) plt.show()
Note the y axis here goes to 25, since that's the maximum value in our data set.