Personalizar Spines no Matplotlib

Beginner

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

Introdução

Neste laboratório, você aprenderá como personalizar as spines (bordas) no Matplotlib. As spines são as linhas que conectam as marcas de escala dos eixos e demarcam os limites da área de dados. Por padrão, o Matplotlib exibe spines em todos os quatro lados do gráfico. No entanto, você pode querer personalizar essas spines para destacar melhor seus dados.

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 Matplotlib e NumPy

Primeiramente, precisamos importar as bibliotecas Matplotlib e NumPy para criar nosso gráfico. Usaremos NumPy para criar dados de exemplo para nosso gráfico.

import matplotlib.pyplot as plt
import numpy as np

Criar Dados de Exemplo

Em seguida, criaremos dados de exemplo para nosso gráfico usando NumPy. Geraremos 100 pontos de dados entre 0 e 2π e calcularemos seus valores de seno correspondentes.

x = np.linspace(0, 2 * np.pi, 100)
y = 2 * np.sin(x)

Criar Subplots

Criaremos três subplots para demonstrar diferentes customizações de spines. Usaremos o layout constrito (constrained layout) para garantir que os rótulos não se sobreponham aos eixos.

fig, (ax0, ax1, ax2) = plt.subplots(nrows=3, layout='constrained')

Customizar Spines para os Quatro Lados

No primeiro subplot, exibiremos spines em todos os quatro lados do gráfico. Podemos acessar os spines de cada subplot usando o container ax.spines. Em seguida, podemos customizar os spines usando vários métodos.

ax0.plot(x, y)
ax0.set_title('Normal Spines')

Customizar Spines para os Lados Inferior e Esquerdo

No segundo subplot, exibiremos spines apenas nos lados inferior e esquerdo do gráfico. Podemos ocultar os spines nos lados direito e superior do gráfico usando o método set_visible.

ax1.plot(x, y)
ax1.set_title('Bottom-Left Spines')

## Hide the right and top spines
ax1.spines.right.set_visible(False)
ax1.spines.top.set_visible(False)

Customizar Spines com Limites Restritos ao Intervalo de Dados

No terceiro subplot, exibiremos spines com limites restritos ao intervalo de dados. Podemos limitar a extensão de cada spine ao intervalo de dados usando o método set_bounds.

ax2.plot(x, y)
ax2.set_title('Spines with Bounds Limited to Data Range')

## Only draw spines for the data range, not in the margins
ax2.spines.bottom.set_bounds(x.min(), x.max())
ax2.spines.left.set_bounds(y.min(), y.max())
## Hide the right and top spines
ax2.spines.right.set_visible(False)
ax2.spines.top.set_visible(False)

Mostrar o Gráfico

Finalmente, exibiremos o gráfico usando o método show.

plt.show()

Resumo

Neste laboratório, você aprendeu como customizar spines no Matplotlib. Especificamente, você aprendeu como exibir spines em lados específicos do gráfico, ocultar spines em lados específicos do gráfico e limitar a extensão de cada spine ao intervalo de dados. Ao customizar spines, você pode criar gráficos que destacam melhor seus dados e melhoram sua legibilidade geral.