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.
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.