Matplotlib Offset Copy

Beginner

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

Introducción

En este laboratorio, aprenderemos a usar transforms.offset_copy para posicionar un elemento de dibujo, como una cadena de texto, con un desplazamiento especificado en coordenadas de pantalla con respecto a una ubicación dada en cualquier coordenada. Usaremos la librería Matplotlib en Python para crear un diagrama de dispersión y un diagrama polar, y luego agregaremos texto a cada diagrama usando offset_copy.

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

Comenzaremos importando las bibliotecas necesarias: numpy y matplotlib.pyplot.

import numpy as np
import matplotlib.pyplot as plt

Crear datos

A continuación, crearemos algunos datos para usar en nuestros gráficos. Usaremos numpy para crear dos arrays, xs e ys, que usaremos como coordenadas x e y para nuestro diagrama de dispersión.

xs = np.arange(7)
ys = xs**2

Crear un diagrama de dispersión

Ahora crearemos un diagrama de dispersión usando la función plot de matplotlib.pyplot.

fig = plt.figure(figsize=(5, 10))
ax = plt.subplot(2, 1, 1)

## Plot the data
for x, y in zip(xs, ys):
    plt.plot(x, y, 'ro')

Agregar texto al diagrama de dispersión

Ahora agregaremos texto a nuestro diagrama de dispersión usando offset_copy. Primero crearemos una transformación que posicione el texto con un desplazamiento especificado en coordenadas de pantalla con respecto a una ubicación dada en cualquier coordenada. Luego, usaremos la función text de matplotlib.pyplot para agregar el texto al gráfico.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       x=0.05, y=0.10, units='inches')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)), transform=trans_offset)

Crear un gráfico polar

Ahora crearemos un gráfico polar usando la función polar de matplotlib.pyplot.

ax = plt.subplot(2, 1, 2, projection='polar')

## Plot the data
for x, y in zip(xs, ys):
    plt.polar(x, y, 'ro')

Agregar texto al gráfico polar

Finalmente, agregaremos texto a nuestro gráfico polar usando offset_copy y la función text de matplotlib.pyplot.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       y=6, units='dots')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)),
             transform=trans_offset,
             horizontalalignment='center',
             verticalalignment='bottom')

Resumen

En este laboratorio, aprendimos cómo usar transforms.offset_copy para posicionar un elemento de dibujo con un desplazamiento especificado en coordenadas de pantalla con respecto a una ubicación dada en cualquier coordenada. Usamos esta función para agregar texto a un diagrama de dispersión y a un gráfico polar creado usando la biblioteca matplotlib.pyplot en Python.