Personalização de Marcas de Data no Matplotlib Usando Regras de Recorrência

Beginner

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

Introdução

Neste laboratório, você aprenderá como usar regras de recorrência no Matplotlib para posicionar marcas de data. O iCalendar RFC_ especifica regras de recorrência (rrules), que definem sequências de datas. Você pode usar rrules no Matplotlib para posicionar marcas de data. Este exemplo define marcas de data personalizadas em cada 5ª Páscoa.

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 as bibliotecas necessárias

Primeiro, você precisa importar as bibliotecas necessárias, incluindo Matplotlib, NumPy e datetime.

import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import (YEARLY, DateFormatter, RRuleLocator, drange,
                              rrulewrapper)

Definir a semente aleatória

Você gerará dados aleatórios para este exemplo, portanto, precisa definir a semente aleatória para reprodutibilidade.

np.random.seed(19680801)

Definir a regra de recorrência

Você definirá marcas de data personalizadas a cada 5ª Páscoa. Para fazer isso, você precisa definir a regra de recorrência usando a função rrulewrapper.

rule = rrulewrapper(YEARLY, byeaster=1, interval=5)

Definir o localizador e formatador de marcas

Você usará a função RRuleLocator para definir o localizador de marcas com base na regra de recorrência que você definiu na etapa anterior. Você também usará a função DateFormatter para definir o formatador de marcas.

loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')

Definir as datas e gerar dados aleatórios

Você precisa definir as datas de início e fim e o delta, que representa a diferença entre cada data. Você também precisa gerar dados aleatórios para o exemplo.

date1 = datetime.date(1952, 1, 1)
date2 = datetime.date(2004, 4, 12)
delta = datetime.timedelta(days=100)

dates = drange(date1, date2, delta)
s = np.random.rand(len(dates))

Plotar os dados e definir as marcas do eixo x

Finalmente, você pode plotar os dados usando a função plot e definir as marcas do eixo x usando as funções de localizador e formatador de marcas que você definiu anteriormente.

fig, ax = plt.subplots()
plt.plot(dates, s, 'o')
ax.xaxis.set_major_locator(loc)
ax.xaxis.set_major_formatter(formatter)
ax.xaxis.set_tick_params(rotation=30, labelsize=10)
plt.show()

Resumo

Neste laboratório, você aprendeu como usar regras de recorrência no Matplotlib para colocar marcas de data personalizadas em um gráfico. Você primeiro definiu a regra de recorrência usando a função rrulewrapper e, em seguida, usou as funções RRuleLocator e DateFormatter para definir o localizador e o formatador de marcas. Finalmente, você plotou os dados e definiu as marcas do eixo x usando as funções de localizador e formatador de marcas.