# pip install python-bcb
from bcb import sgs
# Existe restrição da API para baixar séries longas
# 2) Janela limitada (até 10 anos)
# Buscando a série 11 (Selic)
selic_10y = sgs.get(
{'selic': 11},
start='2016-03-19',
end='2026-03-18'
)
# Buscando a série 12 (CDI)
cdi_10y = sgs.get(
{'cdi': 12},
start='2016-03-19',
end='2026-03-18'
)
# Exibindo as primeiras linhas para conferência
print("Selic:")
## Selic:
print(selic_10y.head())
## selic
## Date
## 2016-03-21 0.052531
## 2016-03-22 0.052531
## 2016-03-23 0.052531
## 2016-03-24 0.052531
## 2016-03-28 0.052531
print("\nCDI:")
##
## CDI:
print(cdi_10y.head())
## cdi
## Date
## 2016-03-21 0.052461
## 2016-03-22 0.052461
## 2016-03-23 0.052461
## 2016-03-24 0.052461
## 2016-03-28 0.052461
# plotar com matplotlib
import matplotlib.pyplot as plt
# Cria uma figura com 2 gráficos (2 linhas, 1 coluna)
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
# Gráfico 1: Selic
ax1.plot(selic_10y.index, selic_10y['selic'], color='blue', label='Selic')
ax1.set_title('Histórico da Taxa Selic (10 anos)')
ax1.set_ylabel('Taxa (%)')
ax1.grid(True) # Adiciona linhas de grade para facilitar a leitura
# Gráfico 2: CDI
ax2.plot(cdi_10y.index, cdi_10y['cdi'], color='green', label='CDI')
ax2.set_title('Histórico da Taxa CDI (10 anos)')
ax2.set_ylabel('Taxa (%)')
ax2.set_xlabel('Ano')
ax2.grid(True)
# Ajusta o espaçamento para os gráficos não ficarem colados
plt.tight_layout()
# SALVANDO A IMAGEM AQUI (Antes do show!)
# Usamos o 'r' antes das aspas para o Python ler as barras
# invertidas do Windows corretamente
caminho_arquivo = r'D:\disciplinas\pratica extensionista\2026_1\atividades\juros_py\grafico_selic_cdi.png'
#
plt.savefig(caminho_arquivo, dpi=300, bbox_inches='tight')
print(f"Gráfico salvo com sucesso em: {caminho_arquivo}")
## Gráfico salvo com sucesso em: D:\disciplinas\pratica extensionista\2026_1\atividades\juros_py\grafico_selic_cdi.png
# Exibe o gráfico
plt.show()
