Skip to content

Como criar um gráfico de séries temporais com Matplotlib em Python

Updated on

Neste tutorial, você aprenderá como criar um gráfico de séries temporais com Matplotlib em Python. Seja visualizando preços de ações, tráfego na web ou qualquer outro dado dependente de tempo, o Matplotlib é uma poderosa ferramenta para visualização e análise de dados. Mostraremos como personalizar os marcadores e rótulos de ticks, trabalhar com datas no eixo horizontal e adicionar marcadores menores para uma visualização mais detalhada dos dados.

Quer criar visualizações de dados rapidamente em Python?

PyGWalker é um projeto Python de código aberto que pode ajudar a acelerar o fluxo de trabalho de análise e visualização de dados diretamente dentro do ambiente de notebooks Jupyter.

PyGWalker (opens in a new tab) transforma seu dataframe do Pandas (ou dataframe do Polars) em uma interface de usuário visual, onde é possível arrastar e soltar variáveis para criar gráficos com facilidade. Basta usar o seguinte código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Você pode executar o PyGWalker agora mesmo com esses notebooks online:

E não se esqueça de nos dar uma ⭐️ no GitHub!

Executar PyGWalker no Kaggle Notebook (opens in a new tab)Executar PyGWalker no Google Colab (opens in a new tab)Dar uma ⭐️ ao PyGWalker no GitHub (opens in a new tab)
Executar PyGWalker no Kaggle Notebook (opens in a new tab)Executar PyGWalker no Google Colab (opens in a new tab)Executar PyGWalker no Google Colab (opens in a new tab)

O que é o Matplotlib e para que serve?

O Matplotlib é uma biblioteca de visualização de dados para Python. Ele fornece uma ampla gama de ferramentas para criar visualizações estáticas, animadas e interativas em Python. O Matplotlib é amplamente utilizado em acadêmicos, indústria e governos para criar gráficos e gráficos.

Como posso personalizar os marcadores e rótulos de ticks em um gráfico de séries temporais com Matplotlib?

Você pode personalizar os marcadores e rótulos de ticks em um gráfico de séries temporais com Matplotlib usando os métodos set_xticks() e set_xticklabels(). Esses métodos permitem que você especifique a localização e o formato dos marcadores e rótulos de ticks no eixo horizontal.

import matplotlib.pyplot as plt
import pandas as pd
 
# Carregar dados
data = pd.read_csv("data.csv")
 
# Converter coluna de data em datetime
data["date"] = pd.to_datetime(data["date"])
 
# Criar gráfico
fig, ax = plt.subplots()
 
# Definir localização e rótulos de ticks
ax.set_xticks(data["date"])
ax.set_xticklabels(data["date"].dt.strftime("%Y-%m"))
 
# Plotar dados
ax.plot(data["date"], data["value"])
 
# Mostrar gráfico
plt.show()

Neste exemplo, carregamos os dados usando a biblioteca Pandas e convertemos a coluna de data para o formato datetime. Em seguida, criamos o objeto de gráfico usando o Matplotlib e definimos a localização e os rótulos de ticks usando os métodos set_xticks() e set_xticklabels(). Finalmente, plotamos os dados e exibimos o gráfico usando o método show().

Como posso trabalhar com datas no eixo horizontal no Matplotlib?

Você pode trabalhar com datas no eixo horizontal no Matplotlib usando a função date2num() do módulo matplotlib.dates. Essa função converte um objeto de data em um número de ponto flutuante, que pode ser usado para plotar datas no eixo horizontal.

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
 
# Carregar dados
data = pd.read_csv("data.csv")
 
# Converter coluna de data em datetime e formato date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
 
# Criar gráfico
fig, ax = plt.subplots()
 
# Plotar dados
ax.plot_date(data["date"], data["value"], linestyle="solid")
 
# Mostrar gráfico
plt.show()

Neste exemplo, carregamos os dados usando a biblioteca Pandas e convertemos a coluna de data para o formato datetime. Em seguida, usamos a função date2num() para converter a coluna de data em um formato que possa ser plotado pelo Matplotlib. Finalmente, plotamos os dados usando o método plot_date() e exibimos o gráfico usando o método show().

O que é um MonthLocator e como ele é usado no Matplotlib?

Um MonthLocator é uma classe do Matplotlib que é usada para especificar as localizações dos marcadores de ticks no eixo horizontal de um gráfico de séries temporais. A classe MonthLocator pode ser usada para gerar localizações de ticks em intervalos regulares de meses.

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
 
# Carregar dados
data = pd.read_csv("data.csv")
 
# Converter coluna de data em datetime e formato date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
 
# Criar gráfico
fig, ax = plt.subplots()
 
# Definir localizador de ticks
ax.xaxis.set_major_locator(mdates.MonthLocator())
 
# Definir formatador de ticks

ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))

Plotar dados

ax.plot_date(data["date"], data["value"], linestyle="solid")

Mostrar plotagem

plt.show()


Nesse exemplo, primeiro carregamos os dados usando a biblioteca Pandas, convertemos a coluna de data para um formato de data e convertemos para o formato que pode ser plotado pelo Matplotlib. Em seguida, criamos o objeto de plotagem e configuramos o localizador de marcas usando o método `set_major_locator()` para gerar as localizações das marcas em intervalos regulares de meses. Por fim, plotamos os dados e exibimos a plotagem usando o método `show()`.

## Como posso adicionar marcas menores a um gráfico de série temporal com Matplotlib?

Você pode adicionar marcas menores a um gráfico de série temporal com Matplotlib usando o método `set_minor_locator()` do objeto `xaxis`. Esse método permite especificar a localização das marcas menores no eixo horizontal.

```python
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd

# Carregar dados
data = pd.read_csv("data.csv")

# Converter coluna de data para formato de data e date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)

# Criar plotagem
fig, ax = plt.subplots()

# Configurar localizador de marcas
ax.xaxis.set_major_locator(mdates.MonthLocator())

# Configurar formatador de marcas
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))

# Configurar localizador de marcas menores
ax.xaxis.set_minor_locator(mdates.MonthLocator(bymonthday=15))

# Plotar dados
ax.plot_date(data["date"], data["value"], linestyle="solid")

# Mostrar plotagem
plt.show()

Nesse exemplo, primeiro carregamos os dados usando a biblioteca Pandas e convertemos a coluna de data para um formato de data. Em seguida, criamos o objeto de plotagem e configuramos o localizador e formatador de marcas como fizemos antes. Por fim, configuramos o localizador de marcas menores usando o método set_minor_locator() para gerar as localizações das marcas a cada 15º dia de cada mês. Plotamos os dados e exibimos a plotagem usando o método show().

Conclusão

O Matplotlib é uma ferramenta poderosa para criar gráficos de série temporal em Python. Com sua ampla gama de opções de personalização, você pode criar visualizações bonitas e informativas dos seus dados dependentes do tempo. Seja você um iniciante em visualização de dados ou um analista de dados experiente, o Matplotlib é uma adição valiosa ao seu conjunto de ferramentas.

Outros Tutoriais Python: