Introdução
Este tutorial irá guiá-lo através da criação de uma visualização usando coleções do Matplotlib. O tutorial mostrará como usar LineCollection, PolyCollection e RegularPolyCollection. O tutorial também mostrará como usar os argumentos de palavra-chave offsets e offset_transform de LineCollection e PolyCollection para definir as posições das espirais. O tutorial também mostrará como usar o RegularPolyCollection para criar polígonos regulares.
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 às limitações do 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 as bibliotecas necessárias
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections, transforms
O primeiro passo é importar as bibliotecas necessárias. Usaremos Matplotlib e Numpy para este tutorial.
Criar espirais
nverts = 50
npts = 100
## Make some spirals
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])
O próximo passo é criar espirais usando Numpy. Usaremos as funções sin e cos para criar as espirais.
Criar deslocamentos (offsets)
## Fixing random state for reproducibility
rs = np.random.RandomState(19680801)
## Make some offsets
xyo = rs.randn(npts, 2)
O terceiro passo é criar deslocamentos usando Numpy. Usaremos a função random para criar os deslocamentos.
Criar LineCollection usando deslocamentos (offsets)
col = collections.LineCollection(
[spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)
ax1.add_collection(col, autolim=True)
ax1.autoscale_view()
ax1.set_title('LineCollection using offsets')
O quarto passo é criar um LineCollection usando deslocamentos (offsets). Usaremos o LineCollection para criar curvas com deslocamentos. Também usaremos o offset_transform para definir as posições das curvas.
Criar PolyCollection usando deslocamentos (offsets)
col = collections.PolyCollection(
[spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)
ax2.add_collection(col, autolim=True)
ax2.autoscale_view()
ax2.set_title('PolyCollection using offsets')
O quinto passo é criar um PolyCollection usando deslocamentos (offsets). Usaremos o PolyCollection para preencher as curvas com cores. Também usaremos o offset_transform para definir as posições das curvas.
Criar RegularPolyCollection usando deslocamentos (offsets)
col = collections.RegularPolyCollection(
7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)
ax3.add_collection(col, autolim=True)
ax3.autoscale_view()
ax3.set_title('RegularPolyCollection using offsets')
O sexto passo é criar um RegularPolyCollection usando deslocamentos (offsets). Usaremos o RegularPolyCollection para criar polígonos regulares com deslocamentos. Também usaremos o offset_transform para definir as posições dos polígonos.
Criar deslocamentos (offsets) sucessivos de dados
## Simulate a series of ocean current profiles, successively
## offset by 0.1 m/s so that they form what is sometimes called
## a "waterfall" plot or a "stagger" plot.
nverts = 60
ncurves = 20
offs = (0.1, 0.0)
yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0.2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0.4) * 0.5
segs = []
for i in range(ncurves):
xxx = xx + 0.02*rs.randn(nverts)
curve = np.column_stack([xxx, yy * 100])
segs.append(curve)
col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()
ax4.set_title('Successive data offsets')
ax4.set_xlabel('Zonal velocity component (m/s)')
ax4.set_ylabel('Depth (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])
O sétimo passo é criar deslocamentos (offsets) sucessivos de dados. Usaremos o LineCollection para criar curvas com deslocamentos sucessivos.
Resumo
Este tutorial mostrou como usar as coleções do Matplotlib para criar visualizações. Você aprendeu como usar LineCollection, PolyCollection e RegularPolyCollection para criar curvas e polígonos. Você também aprendeu como usar os argumentos de palavra-chave offsets e offset_transform do LineCollection e PolyCollection para definir as posições das espirais.