Introdução
Matplotlib é uma biblioteca de visualização de dados amplamente utilizada em Python. Ela oferece uma variedade de ferramentas para criar diferentes tipos de gráficos, incluindo subplots. Ao criar subplots, é frequentemente útil rotular cada gráfico para facilitar a compreensão da informação apresentada pelo leitor. Neste laboratório, aprenderemos como rotular subplots usando diferentes métodos fornecidos pelo Matplotlib.
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
O primeiro passo é importar as bibliotecas necessárias. Usaremos matplotlib.pyplot e matplotlib.transforms para criar e transformar os subplots.
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
Criar Subplots
Em seguida, criamos os subplots usando plt.subplot_mosaic. Criaremos uma grade 3x2 de subplots e os rotularemos da seguinte forma:
- O gráfico superior esquerdo será rotulado como "a)"
- O gráfico inferior esquerdo será rotulado como "b)"
- Os gráficos superior direito e inferior direito serão rotulados como "c)" e "d)", respectivamente.
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']], layout='constrained')
Rotular Dentro dos Eixos
O método mais simples para rotular subplots é colocar o rótulo dentro dos eixos. Podemos conseguir isso usando o método ax.text. Iremos iterar por cada subplot e adicionar o rótulo dentro dos eixos usando ax.transAxes.
for label, ax in axs.items():
## label physical distance in and down:
trans = mtransforms.ScaledTranslation(10/72, -5/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', verticalalignment='top', fontfamily='serif',
bbox=dict(facecolor='0.7', edgecolor='none', pad=3.0))
Rotular Fora dos Eixos
Podemos preferir os rótulos fora dos eixos, mas ainda alinhados entre si. Neste caso, usamos uma transformação um pouco diferente.
for label, ax in axs.items():
## label physical distance to the left and up:
trans = mtransforms.ScaledTranslation(-20/72, 7/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', va='bottom', fontfamily='serif')
Rotular com Título
Se quisermos que o rótulo seja alinhado com o título, podemos incorporá-lo no título ou usar o argumento de palavra-chave loc.
for label, ax in axs.items():
ax.set_title('Normal Title', fontstyle='italic')
ax.set_title(label, fontfamily='serif', loc='left', fontsize='medium')
Exibir os Subplots
Finalmente, exibimos os subplots usando plt.show().
plt.show()
Resumo
Neste laboratório, aprendemos como rotular subplots em Matplotlib usando diferentes métodos. Usamos ax.text para rotular dentro dos eixos, ax.set_title para rotular com o título e plt.subplot_mosaic para criar os subplots. Também usamos matplotlib.transforms para transformar os eixos para alinhar os rótulos. Ao rotular os subplots, podemos tornar nossos gráficos mais informativos e fáceis de entender.