Criando Rótulos de Marcação (Tick Labels) a Partir de uma Lista de Valores

Beginner

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

Introdução

Neste tutorial, você aprenderá como usar o Matplotlib para criar rótulos de marcação (tick labels) a partir de uma lista de valores. Ao usar .Axes.set_xticks, os rótulos de marcação são definidos nas marcações (ticks) atualmente escolhidas. No entanto, às vezes é melhor permitir que o Matplotlib escolha dinamicamente o número de marcações e seu espaçamento. Nesse caso, você pode querer determinar o rótulo de marcação a partir do valor na marcação. Este tutorial mostrará como fazer isso.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook para 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 as bibliotecas necessárias

Começamos importando as bibliotecas necessárias para este tutorial, que são matplotlib.pyplot e MaxNLocator de matplotlib.ticker.

import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

Criar um objeto figura e eixos

Em seguida, criamos um objeto figura e eixos usando o método subplots() de matplotlib.pyplot.

fig, ax = plt.subplots()

Criar os dados x e y

Criamos os dados x e y usando o método range() da função range embutida do Python.

xs = range(26)
ys = range(26)

Criar uma lista de rótulos

Criamos uma lista de rótulos usando o método list() para converter uma string do alfabeto em uma lista de caracteres.

labels = list('abcdefghijklmnopqrstuvwxyz')

Criar uma função de formatação

Criamos uma função de formatação que determina o rótulo da marca de escala (tick label) a partir do valor na marca de escala. Se o valor da marca de escala for um inteiro no intervalo de xs, o rótulo correspondente da lista labels é retornado. Caso contrário, uma string vazia é retornada.

def format_fn(tick_val, tick_pos):
    if int(tick_val) in xs:
        return labels[int(tick_val)]
    else:
        return ''

Definir o formatador e o localizador de marcas de escala (tick)

Definimos o formatador de marcas de escala (tick formatter) do eixo x para a função de formatação criada no Passo 5 usando o método set_major_formatter(). Também definimos o localizador de marcas de escala (tick locator) do eixo x para MaxNLocator(integer=True) para garantir que os valores das marcas de escala assumam valores inteiros.

ax.xaxis.set_major_formatter(format_fn)
ax.xaxis.set_major_locator(MaxNLocator(integer=True))

Criar o gráfico (plot)

Criamos o gráfico usando o método plot() do objeto axes e passamos os dados xs e ys.

ax.plot(xs, ys)

Exibir o gráfico (plot)

Finalmente, exibimos o gráfico usando o método show() de matplotlib.pyplot.

plt.show()

Resumo

Neste tutorial, você aprendeu como criar rótulos de marcação (tick labels) a partir de uma lista de valores usando Matplotlib. Primeiro, criamos um objeto figura e eixos (figure and axes), em seguida, criamos os dados x e y, e finalmente criamos uma lista de rótulos. Depois, criamos uma função de formatação que determina o rótulo de marcação a partir do valor na marcação (tick) e definimos o formatador e localizador de marcação. Por fim, criamos o gráfico (plot) e o exibimos.