I find the hard-coded "extent" in Axes.matshow limits the usability of
this method and hence of pyplot.matshow, because passing "origin" does
switch the order or the rows but does not switch the order of the y-axis
labels, which I find is counter-intuitive and makes simple
lower-left-origin plotting of matrices impossible, because row-numbers
and y-labels are out of sync.
To get the expected behaviour I have to force "extent" to "None" when
calling matshow and let AxesImage.get_extent work which does the same
calculations as done in Axes.matshow, but is origin-aware. It is called
in the constructor of _AxesBaseImage.
Are there strong reasons/use cases for this
inconsistency between array-ordering and label-ordering? Or could this
be changed in the future?