Rotulando Subplots com Matplotlib

Beginner

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

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.