Skip to main content

Coleta e facilita a análise de votações nominais do Congresso Nacional

Project description

Branalysis

Biblioteca Python para coletar e analisar votações nominais do Congresso Nacional.

from branalysis.plenario import Camara
from datetime import date
from matplotlib import pyplot as plt
from statistics import mean

ANO = 2023

def calcula_idade(parlamentar):
   return (date(ANO, 12, 31) - parlamentar.data_nascimento).days / 365

plenario = Camara(ANO)

# Organiza os partidos por idade média, criando tuplas (partido, idade média)
partido_idade_media = [
   (partido, mean(calcula_idade(p) for p in parlamentares))
   for partido, parlamentares in plenario.parlamentares_por_partido().items()
]

# Ordena por idade média crescente
partido_idade_media.sort(key=lambda x: x[1])

# Plota o gráfico de barras
barras = plt.bar(*zip(*partido_idade_media))

plt.bar_label(barras, fmt=lambda x: f'{x:.1f}', label_type='edge')
plt.ylabel('Idade média')
plt.xticks(rotation=-45, ha='left')
plt.show()
from branalysis import Camara, MatrizPolitica, Colorizador, CORES
from matplotlib.colors import ListedColormap
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

plenario = Camara(2023)
parlamentares = plenario.parlamentares()

# Cria a matriz de votos dos parlamentares
matriz = MatrizPolitica(parlamentares, plenario.votacoes()).de_parlamentares()

# Aplica a redução de dimensionalidade
modelo = PCA(n_components=2).fit_transform(matriz)

# Cria um colorizador, que mapeia cores para cada partido
colorizador = Colorizador(fallback='MAIS DE UM')
cor_por_parlamentar = [colorizador[p.partidos()] for p in parlamentares]

# Plota o mapa ideológico
grafico = plt.scatter(modelo[:, 0], modelo[:, 1], cmap=ListedColormap(CORES), c=cor_por_parlamentar)
texto_legenda, cores = colorizador.textos_e_cores()
cores_legenda = grafico.legend_elements(num=cores)[0]

plt.legend(cores_legenda, texto_legenda)
plt.show()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

branalysis-1.0.12.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

branalysis-1.0.12-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file branalysis-1.0.12.tar.gz.

File metadata

  • Download URL: branalysis-1.0.12.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for branalysis-1.0.12.tar.gz
Algorithm Hash digest
SHA256 2bb849ef43a64513aaa3d62da45df40fd7b1b92188e47a99373648c01cdef7ec
MD5 9c69e298be818f31210f80eee76a087b
BLAKE2b-256 e7394bb373dcce7fb0ef93f1e8837c3edffbbb08687fa10a02b6bde54e9c66b6

See more details on using hashes here.

File details

Details for the file branalysis-1.0.12-py3-none-any.whl.

File metadata

  • Download URL: branalysis-1.0.12-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for branalysis-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 05d250135bc9476c9b4160fc5946b636b584b6ea1ff558664d3a9c20c01c2780
MD5 60d1565d60b691519c34618c1482c9b1
BLAKE2b-256 d033686449532d6cb50310a1c347e9842c9546176a190ee1d8b0d90d8f2d722d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page