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.