
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "gallery/text_labels_and_annotations/text_rotation_relative_to_line.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. meta::
        :keywords: codex

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_gallery_text_labels_and_annotations_text_rotation_relative_to_line.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_text_labels_and_annotations_text_rotation_relative_to_line.py:


=======================================
Text rotation angle in data coordinates
=======================================

Text objects in matplotlib are normally rotated with respect to the
screen coordinate system (i.e., 45 degrees rotation plots text along a
line that is in between horizontal and vertical no matter how the axes
are changed).  However, at times one wants to rotate text with respect
to something on the plot.  In this case, the correct angle won't be
the angle of that object in the plot coordinate system, but the angle
that that object APPEARS in the screen coordinate system.  This angle
can be determined automatically by setting the parameter
*transform_rotates_text*, as shown in the example below.

.. GENERATED FROM PYTHON SOURCE LINES 16-33



.. image-sg:: /gallery/text_labels_and_annotations/images/sphx_glr_text_rotation_relative_to_line_001.png
   :alt: text rotation relative to line
   :srcset: /gallery/text_labels_and_annotations/images/sphx_glr_text_rotation_relative_to_line_001.png, /gallery/text_labels_and_annotations/images/sphx_glr_text_rotation_relative_to_line_001_2_00x.png 2.00x
   :class: sphx-glr-single-img





.. code-block:: Python


    import matplotlib.pyplot as plt

    fig, ax = plt.subplots()

    # Plot diagonal line (45 degrees in data coordinates)
    ax.plot(range(0, 8), range(0, 8))
    ax.set_xlim([-10, 10])

    # Plot text
    ax.text(-8, 0, 'text 45° in screen coordinates', fontsize=18,
            rotation=45, rotation_mode='anchor')
    ax.text(0, 0, 'text 45° in data coordinates', fontsize=18,
            rotation=45, rotation_mode='anchor',
            transform_rotates_text=True)

    plt.show()


.. _sphx_glr_download_gallery_text_labels_and_annotations_text_rotation_relative_to_line.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: text_rotation_relative_to_line.ipynb <text_rotation_relative_to_line.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: text_rotation_relative_to_line.py <text_rotation_relative_to_line.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: text_rotation_relative_to_line.zip <text_rotation_relative_to_line.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
