I am a little confused about how this code works:
fig, axes = plt.subplots(nrows=2, ncols=2) plt.show()
How does the fig, axes work in this case? What does it do?
Also why wouldn’t this work to do the same thing:
fig = plt.figure() axes = fig.subplots(nrows=2, ncols=2)
Answer
There are several ways to do it. The subplots
method creates the figure along with the subplots that are then stored in the ax
array. For example:
import matplotlib.pyplot as plt x = range(10) y = range(10) fig, ax = plt.subplots(nrows=2, ncols=2) for row in ax: for col in row: col.plot(x, y) plt.show()
However, something like this will also work, it’s not so “clean” though since you are creating a figure with subplots and then add on top of them:
fig = plt.figure() plt.subplot(2, 2, 1) plt.plot(x, y) plt.subplot(2, 2, 2) plt.plot(x, y) plt.subplot(2, 2, 3) plt.plot(x, y) plt.subplot(2, 2, 4) plt.plot(x, y) plt.show()