Flecha de dirección anclada en Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo crear flechas de dirección ancladas en Matplotlib. Las flechas de dirección ancladas son flechas que apuntan en una dirección específica y están ancladas a una gráfica. Estas flechas son útiles para indicar direcciones o orientaciones específicas en una gráfica. Aprenderemos cómo crear flechas simples, así como flechas de alto contraste y rotadas.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas necesarias, como Matplotlib, NumPy, el administrador de fuentes de Matplotlib y AnchoredDirectionArrows (Flechas de Dirección Ancladas) de mpl_toolkits.axes_grid1. Utilizaremos estas bibliotecas para crear flechas de dirección ancladas.

import matplotlib.pyplot as plt
import numpy as np

import matplotlib.font_manager as fm
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDirectionArrows

Crear una gráfica

A continuación, crearemos una gráfica simple utilizando NumPy. Esta gráfica servirá como fondo para las flechas de dirección ancladas.

## Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.imshow(np.random.random((10, 10)))

Crear una flecha simple

Ahora, crearemos una flecha de dirección anclada simple utilizando la clase AnchoredDirectionArrows. Esta flecha indicará las direcciones X e Y en la gráfica.

## Simple example
simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y')
ax.add_artist(simple_arrow)

Crear una flecha de alto contraste

A continuación, crearemos una flecha de dirección anclada de alto contraste. Esta flecha tendrá un contorno blanco y un relleno negro.

high_contrast_part_1 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'w', 'fc': 'none', 'alpha': 1,
                                         'lw': 2}
                            )
ax.add_artist(high_contrast_part_1)

high_contrast_part_2 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'none', 'fc': 'k'},
                            text_props={'ec': 'w', 'fc': 'k', 'lw': 0.4}
                            )
ax.add_artist(high_contrast_part_2)

Crear una flecha girada

En este paso, crearemos una flecha de dirección anclada girada. Esta flecha se girará 30 grados y tendrá una fuente con serif.

fontprops = fm.FontProperties(family='serif')

rotated_arrow = AnchoredDirectionArrows(
                    ax.transAxes,
                    '30', '120',
                    loc='center',
                    color='w',
                    angle=30,
                    fontproperties=fontprops
                    )
ax.add_artist(rotated_arrow)

Cambiar las direcciones de las flechas

En este paso, crearemos tres flechas de dirección ancladas que apunten en diferentes direcciones. Estas flechas tendrán diferentes longitudes y relaciones de aspecto.

a1 = AnchoredDirectionArrows(
        ax.transAxes, 'A', 'B', loc='lower center',
        length=-0.15,
        sep_x=0.03, sep_y=0.03,
        color='r'
    )
ax.add_artist(a1)

a2 = AnchoredDirectionArrows(
        ax.transAxes, 'A', ' B', loc='lower left',
        aspect_ratio=-1,
        sep_x=0.01, sep_y=-0.02,
        color='orange'
        )
ax.add_artist(a2)


a3 = AnchoredDirectionArrows(
        ax.transAxes, ' A', 'B', loc='lower right',
        length=-0.15,
        aspect_ratio=-1,
        sep_y=-0.1, sep_x=0.04,
        color='cyan'
        )
ax.add_artist(a3)

Mostrar la gráfica

Finalmente, mostraremos la gráfica con todas las flechas de dirección ancladas.

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear flechas de dirección ancladas en Matplotlib. Creamos flechas simples, así como flechas de alto contraste y giradas. También aprendimos cómo cambiar las direcciones y las relaciones de aspecto de las flechas. Las flechas de dirección ancladas son útiles para indicar direcciones o orientaciones específicas en una gráfica.