Rotar texto en gráficos de 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

Esta práctica demostrará cómo rotar objetos de texto en Matplotlib con respecto a una línea u objeto en un gráfico en lugar del sistema de coordenadas de la pantalla. Esta técnica puede ser útil cuando desees rotar el texto en relación con algo específico en el gráfico.

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/booleans -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/comments -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} matplotlib/line_plots -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/lists -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/tuples -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/build_in_functions -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} python/data_collections -.-> lab-48984{{"Rotar texto en gráficos de Matplotlib"}} end

Trazar una línea diagonal

En primer lugar, trazaremos una línea diagonal a un ángulo de 45 grados utilizando la función plot() de Matplotlib.

fig, ax = plt.subplots()

## Trazar línea diagonal (45 grados)
h = ax.plot(range(0, 10), range(0, 10))

Ajustar los límites del gráfico

A continuación, ajustaremos los límites del gráfico de modo que la línea diagonal no tenga un ángulo de 45 grados cuando se vea en la pantalla. Esto creará un escenario en el que tendremos que rotar el texto con respecto a la línea, en lugar del sistema de coordenadas de la pantalla.

## establecer límites para que no parezca tener un ángulo de 45 grados en la pantalla
ax.set_xlim([-10, 20])

Definir ubicaciones de texto y ángulo de rotación

Ahora definiremos las ubicaciones donde queremos trazar texto en la figura y el ángulo de rotación que queremos utilizar.

## Ubicaciones para trazar texto
l1 = np.array((1, 1))
l2 = np.array((5, 5))

## Ángulo de rotación
angle = 45

Trazar texto sin la rotación correcta

Ahora trazaremos texto en las ubicaciones especificadas sin tener en cuenta la rotación de la línea. Esto hará que el texto se rote a un ángulo de 45 grados, lo cual no es lo que queremos.

## Trazar texto
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor')

Trazar texto con la rotación correcta

Finalmente, trazaremos texto en las ubicaciones especificadas teniendo en cuenta la rotación de la línea. Esto hará que el texto se rote al ángulo correcto con respecto a la línea.

## Trazar texto
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor',
              transform_rotates_text=True)

Mostrar la figura

Mostraremos la figura para ver la diferencia entre los dos conjuntos de texto trazado.

plt.show()

Resumen

En este laboratorio, aprendimos cómo rotar objetos de texto en Matplotlib con respecto a una línea u objeto en un gráfico. Al utilizar el parámetro transform_rotates_text, pudimos asegurar que el texto se rotara al ángulo correcto en relación con la línea, en lugar del sistema de coordenadas de la pantalla.