As long as all the plots are filled, `subplots(n, m, sharex=True, sharey=True)` works fine.  When some plots are left blank, though, the shared axis scales according to the empty plots, making it impossible to see the filled ones. 