Localizadores de Ticks no Matplotlib

Beginner

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

Introdução

Neste tutorial, aprenderemos como definir a posição dos ticks (marcadores) em um gráfico matplotlib usando tick locators (localizadores de ticks). Os tick locators ajudam a tornar os gráficos mais legíveis, definindo a posição dos ticks nos eixos x e y. Abordaremos diferentes tipos de tick locators e como implementá-los em um gráfico 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ê.

Importando Bibliotecas

O primeiro passo é importar as bibliotecas necessárias. Usaremos matplotlib.pyplot e matplotlib.ticker.

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

Configurando o Gráfico

Em seguida, configuraremos o gráfico criando uma figura e um array de subplots. Também definiremos uma função setup que define parâmetros comuns para os eixos no exemplo.

fig, axs = plt.subplots(8, 1, figsize=(8, 6))

def setup(ax, title):
    """Define parâmetros comuns para os Axes no exemplo."""
    ## mostra apenas a borda inferior
    ax.yaxis.set_major_locator(ticker.NullLocator())
    ax.spines[['left', 'right', 'top']].set_visible(False)

    ax.xaxis.set_ticks_position('bottom')
    ax.tick_params(which='major', width=1.00, length=5)
    ax.tick_params(which='minor', width=0.75, length=2.5)
    ax.set_xlim(0, 5)
    ax.set_ylim(0, 1)
    ax.text(0.0, 0.2, title, transform=ax.transAxes,
            fontsize=14, fontname='Monospace', color='tab:blue')

Definindo o Null Locator

O null locator (localizador nulo) é um localizador que não coloca nenhum tick (marca) no eixo. Podemos definir o null locator usando ticker.NullLocator().

setup(axs[0], title="NullLocator()")
axs[0].xaxis.set_major_locator(ticker.NullLocator())
axs[0].xaxis.set_minor_locator(ticker.NullLocator())

Definindo o Multiple Locator

O multiple locator (localizador múltiplo) é um localizador que coloca ticks (marcas) em intervalos regulares. Podemos definir o multiple locator usando ticker.MultipleLocator().

setup(axs[1], title="MultipleLocator(0.5, offset=0.2)")
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(0.5, offset=0.2))
axs[1].xaxis.set_minor_locator(ticker.MultipleLocator(0.1))

Definindo o Fixed Locator

O fixed locator (localizador fixo) é um localizador que coloca ticks (marcas) em localizações fixas. Podemos definir o fixed locator usando ticker.FixedLocator().

setup(axs[2], title="FixedLocator([0, 1, 5])")
axs[2].xaxis.set_major_locator(ticker.FixedLocator([0, 1, 5]))
axs[2].xaxis.set_minor_locator(ticker.FixedLocator(np.linspace(0.2, 0.8, 4)))

Definindo o Linear Locator

O linear locator (localizador linear) é um localizador que coloca ticks (marcas) em intervalos regulares em uma escala linear. Podemos definir o linear locator usando ticker.LinearLocator().

setup(axs[3], title="LinearLocator(numticks=3)")
axs[3].xaxis.set_major_locator(ticker.LinearLocator(3))
axs[3].xaxis.set_minor_locator(ticker.LinearLocator(31))

Definindo o Index Locator

O index locator (localizador de índice) é um localizador que coloca ticks (marcas) em intervalos regulares em uma escala de índice. Podemos definir o index locator usando ticker.IndexLocator().

setup(axs[4], title="IndexLocator(base=0.5, offset=0.25)")
axs[4].plot([0]*5, color='white')
axs[4].xaxis.set_major_locator(ticker.IndexLocator(base=0.5, offset=0.25))

Definindo o Auto Locator

O auto locator (localizador automático) é um localizador que coloca automaticamente ticks (marcas) em intervalos regulares. Podemos definir o auto locator usando ticker.AutoLocator().

setup(axs[5], title="AutoLocator()")
axs[5].xaxis.set_major_locator(ticker.AutoLocator())
axs[5].xaxis.set_minor_locator(ticker.AutoMinorLocator())

Definindo o MaxN Locator

O MaxN locator (localizador MaxN) é um localizador que coloca um número máximo de ticks (marcas) no eixo. Podemos definir o MaxN locator usando ticker.MaxNLocator().

setup(axs[6], title="MaxNLocator(n=4)")
axs[6].xaxis.set_major_locator(ticker.MaxNLocator(4))
axs[6].xaxis.set_minor_locator(ticker.MaxNLocator(40))

Definindo o Log Locator

O log locator (localizador logarítmico) é um localizador que coloca ticks (marcas) em intervalos regulares em uma escala logarítmica. Podemos definir o log locator usando ticker.LogLocator().

setup(axs[7], title="LogLocator(base=10, numticks=15)")
axs[7].set_xlim(10**3, 10**10)
axs[7].set_xscale('log')
axs[7].xaxis.set_major_locator(ticker.LogLocator(base=10, numticks=15))

Exibindo o Gráfico

Finalmente, podemos exibir o gráfico usando plt.show().

plt.tight_layout()
plt.show()

Resumo

Neste tutorial, aprendemos como definir a posição dos ticks (marcas) em um gráfico matplotlib usando tick locators (localizadores de marcas). Cobrimos diferentes tipos de tick locators e como implementá-los em um gráfico matplotlib. Isso pode ajudar a tornar os gráficos mais legíveis e informativos.