[Matplotlib-users] Third Y axis is like cryptonite to pyplot.

I modified
https://matplotlib.org/3.2.1/gallery/ticks_and_spines/multiple_yaxis_with_spines.html
to have a fourth data-set:

With the offset of "1.35"
par3.spines["right"].set_position(("axes", 1.35))
One can get a glimpse of that, any less, and it will overlap, and more it
will be invisible.

changing "right" to "left" does nothing.
Also, the resulting spines placement does vary with the width of the window.
- wasting more space the wider the window gets.

···

--
Sent from: http://matplotlib.1069221.n5.nabble.com/matplotlib-users-f3.html
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@python.org
https://mail.python.org/mailman/listinfo/matplotlib-users

Andre,

Please subscribe to the mailing list https://mail.python.org/mailman/listinfo/matplotlib-users to post un-moderated and to make sure you get responses.

Thank you for a copy-paste-runable example, it made it super easy to help you :slight_smile:

The units that the positions are in is “axes fraction” which is the coordinate system on the Axes object where (0,0) is the lower left and (1, 1) is the upper right. In this coordinate system 1.35 is a 0.35 * (axes width) to the right of the right edge of the Axes which happens to be out of the Figure.

If do

fig.subplots_adjust(right=0.5)

it will shrink the Axes enough that it will all fit.

If you have a mpl >=3.1 then you can do

fig, host = plt.subplots(constrained_layout=True)

fig.subplots_adjust(right=0.5) # remove the call to subplots_adjust

It will automatically resize everything to fit and completely fill the available space!

Tom

···

Thomas Caswell
tcaswell@gmail.com