Axes twinned and shared?

I’d like to represent data on a 2-by-3 grid of subplots with x-axes shared along columns and y-axes shared along rows. This is works nicely using subplots(2, 3, sharey='row', sharex='col').

The issue is that each of the plots also has a twin via twinx, which does not share its axes appropriately. I found a post with a similar issue:

But that does not produce what twinx normally does. So my question is, is there a better way to do this?

Using AX2.get_shared_y_axes().join(AX2, AX1) works, but it still does not automatically remove the tick-labels that are in-between.

I turned them off manually using set_yticklabels([]).