.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/text_labels_and_annotations/demo_text_rotation_mode.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_text_labels_and_annotations_demo_text_rotation_mode.py: ======================= Demo Text Rotation Mode ======================= This example illustrates the effect of ``rotation_mode`` on the positioning of rotated text. Rotated `.Text`\s are created by passing the parameter ``rotation`` to the constructor or the axes' method `~.axes.Axes.text`. The actual positioning depends on the additional parameters ``horizontalalignment``, ``verticalalignment`` and ``rotation_mode``. ``rotation_mode`` determines the order of rotation and alignment: - ``rotation_mode='default'`` (or None) first rotates the text and then aligns the bounding box of the rotated text. - ``rotation_mode='anchor'`` aligns the unrotated text and then rotates the text around the point of alignment. .. GENERATED FROM PYTHON SOURCE LINES 22-79 .. code-block:: default import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.axes_grid import ImageGrid def test_rotation_mode(fig, mode, subplot_location): ha_list = ["left", "center", "right"] va_list = ["top", "center", "baseline", "bottom"] grid = ImageGrid(fig, subplot_location, nrows_ncols=(len(va_list), len(ha_list)), share_all=True, aspect=True, cbar_mode=None) # labels and title for ha, ax in zip(ha_list, grid.axes_row[-1]): ax.axis["bottom"].label.set_text(ha) for va, ax in zip(va_list, grid.axes_column[0]): ax.axis["left"].label.set_text(va) grid.axes_row[0][1].set_title(f"rotation_mode='{mode}'", size="large") if mode == "default": kw = dict() else: kw = dict( bbox=dict(boxstyle="square,pad=0.", ec="none", fc="C1", alpha=0.3)) # use a different text alignment in each axes texts = [] for (va, ha), ax in zip([(x, y) for x in va_list for y in ha_list], grid): # prepare axes layout for axis in ax.axis.values(): axis.toggle(ticks=False, ticklabels=False) ax.axvline(0.5, color="skyblue", zorder=0) ax.axhline(0.5, color="skyblue", zorder=0) ax.plot(0.5, 0.5, color="C0", marker="o", zorder=1) # add text with rotation and alignment settings tx = ax.text(0.5, 0.5, "Tpg", size="x-large", rotation=40, horizontalalignment=ha, verticalalignment=va, rotation_mode=mode, **kw) texts.append(tx) if mode == "default": # highlight bbox fig.canvas.draw() for ax, tx in zip(grid, texts): bb = tx.get_window_extent().transformed(ax.transData.inverted()) rect = plt.Rectangle((bb.x0, bb.y0), bb.width, bb.height, facecolor="C1", alpha=0.3, zorder=2) ax.add_patch(rect) fig = plt.figure(figsize=(8, 6)) test_rotation_mode(fig, "default", 121) test_rotation_mode(fig, "anchor", 122) plt.show() .. image:: /gallery/text_labels_and_annotations/images/sphx_glr_demo_text_rotation_mode_001.png :alt: rotation_mode='default', rotation_mode='anchor' :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 80-86 ------------ References """""""""" The use of the following method is shown in this example: .. GENERATED FROM PYTHON SOURCE LINES 87-90 .. code-block:: default import matplotlib matplotlib.axes.Axes.text .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 1.614 seconds) .. _sphx_glr_download_gallery_text_labels_and_annotations_demo_text_rotation_mode.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: demo_text_rotation_mode.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: demo_text_rotation_mode.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_