Since you set sharey=True , all three axes now behave as if they were. For example, when you invert one of them, you affect all four. The problem is that you are inverting the axes in a for loop that runs an iterable length four, you are thus inverting ALL axes for an even number of times ... By inverting an already inverted ax, you simply restore its original orientation. Instead, try with an odd number of subheadings, and you will see that the axes are successfully inverted.
To solve your problem, you have to invert the y axis of one subtitle (and only once). The following code works for me:
import matplotlib.pyplot as plt import numpy as np fig,AX = plt.subplots(2, 2, sharex=True, sharey=True)
source share