Introdução
Neste laboratório, você aprenderá como usar .GridSpecs aninhados no Matplotlib para criar uma grade de subplots com tamanhos variados. Isso é útil quando você deseja criar um layout complexo de gráficos e ter controle sobre o tamanho e o espaçamento de cada gráfico.
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
Primeiramente, precisamos importar as bibliotecas necessárias. Usaremos matplotlib.pyplot para criar os gráficos e numpy para gerar alguns dados para plotar.
import matplotlib.pyplot as plt
import numpy as np
Criar Dados
Nesta etapa, criaremos alguns dados para plotar. Usaremos a função squiggle_xy para gerar algumas ondas senoidais e cossenoidais com diferentes frequências.
def squiggle_xy(a, b, c, d):
i = np.arange(0.0, 2*np.pi, 0.05)
return np.sin(i*a)*np.cos(i*b), np.sin(i*c)*np.cos(i*d)
Criar a Figura e a Grelha Externa
Em seguida, criaremos a figura e a grelha externa usando a função add_gridspec. Criaremos uma grelha 4x4 sem espaçamento entre os subplots.
fig = plt.figure(figsize=(8, 8))
outer_grid = fig.add_gridspec(4, 4, wspace=0, hspace=0)
Criar as Grelhas Internas e Subplots
Nesta etapa, criaremos as grelhas internas e subplots usando .GridSpecs aninhados. Iremos iterar por cada célula na grelha externa e criar uma grelha 3x3 para cada célula.
for a in range(4):
for b in range(4):
## gridspec inside gridspec
inner_grid = outer_grid[a, b].subgridspec(3, 3, wspace=0, hspace=0)
axs = inner_grid.subplots() ## Create all subplots for the inner grid.
for (c, d), ax in np.ndenumerate(axs):
ax.plot(*squiggle_xy(a + 1, b + 1, c + 1, d + 1))
ax.set(xticks=[], yticks=[])
Mostrar Apenas os Spines Externos
Nesta etapa, removeremos os spines (bordas) para os subplots internos e mostraremos apenas os spines externos. Isso fará com que o gráfico pareça mais limpo.
for ax in fig.get_axes():
ss = ax.get_subplotspec()
ax.spines.top.set_visible(ss.is_first_row())
ax.spines.bottom.set_visible(ss.is_last_row())
ax.spines.left.set_visible(ss.is_first_col())
ax.spines.right.set_visible(ss.is_last_col())
Exibir o Gráfico
Finalmente, exibiremos o gráfico usando a função show().
plt.show()
Resumo
Neste laboratório, você aprendeu como usar .GridSpecs aninhados em Matplotlib para criar uma grade de subplots com tamanhos variados. Também aprendemos como gerar dados usando numpy e como personalizar os spines (bordas) dos subplots. Com este conhecimento, você pode criar layouts complexos de gráficos com controle preciso sobre seu tamanho e espaçamento.