fig, axes = plt.subplots(nrows=4, ncols=4, sharex=True, sharey=True)
for ax in axes.flat:
    x, y = 10 * np.random.random((2, 20))
colors = np.random.random((20, 3))
ax.scatter(x, y, s=80, facecolors=colors, edgecolors='')
ax.set(xticks=np.linspace(0, 10, 6), yticks=np.linspace(0, 10, 6))
for ax, label in zip(axes[(0), :], ['A', 'B', 'C', 'D']):
    ax.set_title(label, size=20)
for ax, label in zip(axes[:, (0)], ['E', 'F', 'G', 'H']):
    ax.set_ylabel(label, size=20)
plt.show()
Automate the Populating of Subplots