Common xlabel/ylabel for matplotlib subplots

This looks like what you actually want. It applies the same approach of this answer to your specific case:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(nrows=3, ncols=3, sharex=True, sharey=True, figsize=(6, 6))

fig.text(0.5, 0.04, 'common X', ha="center")
fig.text(0.04, 0.5, 'common Y', va="center", rotation='vertical')

Multiple plots with common axes label

Leave a Comment