.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/ticks_and_spines/multiple_yaxis_with_spines.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_ticks_and_spines_multiple_yaxis_with_spines.py: ========================== Multiple Yaxis With Spines ========================== Create multiple y axes with a shared x axis. This is done by creating a `~.axes.Axes.twinx` axes, turning all spines but the right one invisible and offset its position using `~.spines.Spine.set_position`. Note that this approach uses `matplotlib.axes.Axes` and their `~matplotlib.spines.Spine`\s. An alternative approach for parasite axes is shown in the :doc:`/gallery/axisartist/demo_parasite_axes` and :doc:`/gallery/axisartist/demo_parasite_axes2` examples. .. GENERATED FROM PYTHON SOURCE LINES 15-56 .. image:: /gallery/ticks_and_spines/images/sphx_glr_multiple_yaxis_with_spines_001.png :alt: multiple yaxis with spines :class: sphx-glr-single-img .. code-block:: default import matplotlib.pyplot as plt fig, ax = plt.subplots() fig.subplots_adjust(right=0.75) twin1 = ax.twinx() twin2 = ax.twinx() # Offset the right spine of twin2. The ticks and label have already been # placed on the right by twinx above. twin2.spines.right.set_position(("axes", 1.2)) p1, = ax.plot([0, 1, 2], [0, 1, 2], "b-", label="Density") p2, = twin1.plot([0, 1, 2], [0, 3, 2], "r-", label="Temperature") p3, = twin2.plot([0, 1, 2], [50, 30, 15], "g-", label="Velocity") ax.set_xlim(0, 2) ax.set_ylim(0, 2) twin1.set_ylim(0, 4) twin2.set_ylim(1, 65) ax.set_xlabel("Distance") ax.set_ylabel("Density") twin1.set_ylabel("Temperature") twin2.set_ylabel("Velocity") ax.yaxis.label.set_color(p1.get_color()) twin1.yaxis.label.set_color(p2.get_color()) twin2.yaxis.label.set_color(p3.get_color()) tkw = dict(size=4, width=1.5) ax.tick_params(axis='y', colors=p1.get_color(), **tkw) twin1.tick_params(axis='y', colors=p2.get_color(), **tkw) twin2.tick_params(axis='y', colors=p3.get_color(), **tkw) ax.tick_params(axis='x', **tkw) ax.legend(handles=[p1, p2, p3]) plt.show() .. _sphx_glr_download_gallery_ticks_and_spines_multiple_yaxis_with_spines.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: multiple_yaxis_with_spines.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: multiple_yaxis_with_spines.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_