Matplotlib Offset Copy

Beginner

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

Introdução

Neste laboratório, aprenderemos como usar transforms.offset_copy para posicionar um elemento de desenho, como uma string de texto, em um deslocamento especificado em coordenadas de tela, relativo a uma localização fornecida em quaisquer coordenadas. Usaremos a biblioteca Matplotlib em Python para criar um gráfico de dispersão (scatter plot) e um gráfico polar (polar plot), e então adicionaremos texto a cada gráfico usando offset_copy.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar Bibliotecas

Começaremos importando as bibliotecas necessárias: numpy e matplotlib.pyplot.

import numpy as np
import matplotlib.pyplot as plt

Criar Dados

Em seguida, criaremos alguns dados para usar em nossos gráficos. Usaremos numpy para criar dois arrays, xs e ys, que usaremos como as coordenadas x e y para nosso gráfico de dispersão (scatter plot).

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

Criar um Gráfico de Dispersão (Scatter Plot)

Agora criaremos um gráfico de dispersão usando a função 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')

Adicionar Texto ao Gráfico de Dispersão (Scatter Plot)

Agora adicionaremos texto ao nosso gráfico de dispersão usando offset_copy. Primeiro, criaremos uma transformação (transform) que posiciona o texto em um deslocamento (offset) especificado em coordenadas de tela (screen coordinates) em relação a uma localização fornecida em quaisquer coordenadas. Em seguida, usaremos a função text de matplotlib.pyplot para adicionar o texto ao 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)

Criar um Gráfico Polar (Polar Plot)

Agora criaremos um gráfico polar usando a função 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')

Adicionar Texto ao Gráfico Polar (Polar Plot)

Finalmente, adicionaremos texto ao nosso gráfico polar usando offset_copy e a função 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')

Resumo

Neste laboratório, aprendemos como usar transforms.offset_copy para posicionar um elemento de desenho em um deslocamento especificado em coordenadas de tela em relação a uma localização fornecida em quaisquer coordenadas. Usamos esta função para adicionar texto a um gráfico de dispersão (scatter plot) e a um gráfico polar (polar plot) criados usando a biblioteca matplotlib.pyplot em Python.