Think of the figure as a canvas and the axes as the actual graph(s) or plot(s) on the canvas.
```python
plt.plot(x, y)
# a single axes in the figure
# figure and axes are hidden
# just one figure, one subplot, one graphic
# good for interactive sessions (e.g., jupyter notebooks)
# introduced to mimic MATLAB's interface
ax = plt.subplot()
ax.plot(x, y)
# one axes with hidden figure
# plot one axes/graphic
# object-oriented approach
fig, axes = plt.subplots(2, 3)
# figure 2 by 3 subplots/axes
# axes will be a 2 by 3 array object
# object-oriented approach
fig1, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
# unpack axes
# object-oriented approach
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y)
# add subplots one at a time
# object-oriented approach
```
# References
- https://stackoverflow.com/questions/37970424/what-is-the-difference-between-drawing-plots-using-plot-axes-or-figure-in-matpl