Mapa com Plotly: Desemprego nas Unidades da Federação do Brasil

Mapa com Plotly: Desemprego nas Unidades da Federação do Brasil

A coleta de dados socioeconômicos, bem como sua posterior análise e estabelecimento de indicadores, é de vital importância para compreender a realidade do nosso país e promover políticas públicas adequadas. Um desses indicadores é a taxa de desocupação.

Para entender o Mercado de Trabalho Brasileiro, o Instituto Brasileiro de Geografia e Estatística – IBGE, conduz a Pesquisa Nacional por Amostra de Domicílios Contínua, uma pesquisa que desde 2012 uniu a Pesquisa Mensal de Emprego e a Pesquisa Nacional por Amostra de Domicílio, e dentre diversas caracterísitcas da população, mensura a taxa de desocupação.

De acordo com o IBGE: “O desemprego, de forma simplificada, se refere às pessoas com idade para trabalhar (acima de 14 anos) que não estão trabalhando, mas estão disponíveis e tentam encontrar trabalho. Assim, para alguém ser considerado desempregado, não basta não possuir um emprego.”

Por exemplo, considere uma Jovem que Possui uma Delicatessen e:

  • Seu filho Universitário que emprega todo seu tempo aos estudos da sua graduação;
  • Sua mãe, que é Dona de Casa e que não realiza trabalho fora de casa;
  • Seu esposo, que recentemente perdeu o emprego e busca a recolocação no Mercado de Trabalho;
  • Um confeteiro que prepara as delícias da Delicatessen da Jovem.

Para o IBGE, na PNAD Contínua, O Universitário e a Senhora Dona de Casa serão considerados como fora da força do trabalho, a Jovem Empreendedora e o Confeiteiro são considerados pessoas Ocupadas, e o Esposo da Jovem que busca a recolocação seria uma pessoa Desocupada.

Para entender melhor o Mercado de Trabalho pela ótica do IBGE, veja esta imagem abaixo:

Neste post, vamos descrever passo a passo para criar um mapa que apresente as taxas de desocupação das unidades da Federação do Brasil no último trimestre de 2021, conforme dados da PNAD Contínua divulgados pelo IBGE.


Para pegar os dados utilizamos o sistema IBGE de Recuperação Automática – SIDRA, que é um aplicativo web excelente para obter dados e registros administrativos organizado pelo IBGE, como alguns indicadores oriundos da PNADC trimestral, como a taxa de desocupação, e pode ser acessado através do endereço https://sidra.ibge.gov.br/pesquisa/pnadct/tabelas.

Para facilitar, fiz os devidos tratamentos e disponibilizei o conjunto de dados em um arquivo no formato *.csv , separado por ‘;’ , em um repositório de dados abertos que mantenho em meu GitHub – jonates/opendata.

Nesses conjuntos de dados, cada instância é um registro de uma taxa de desocupação em determinada unidade da federação do Brasil em determinado trimestre de um dado ano, e possui 3 atributos:

  • TRIMESTRE – uma string que determina ano e trimestre da instância;
  • NM_UF – a qual Unidade da Federação do Brasil pertence a instância;
  • TX_DESOCUPACAO– taxa de desocupação, em porcetagem, do trimestre em determinada região do Brasil.

Para realizar o Cartograma, precisamos do arquivo georreferenciado que delimita as unidades da federação do Brasil. Este arquivo em formato *.json também se encontra disponível no repositório opendata do meu GitHub.

Então! Animado para meter as mãos no código e construir o mapa? Vamos lá!


Primeiro, acesse o Google Colab e crie um novo notebook.

Para carregar e fazer transformações no conjunto de dados, vamos utilizar a biblioteca Pandas. Portanto, precisamos importá-la:

# Importando bibliotecas necessárias
import pandas as pd

Em seguida, é preciso Carregar o conjunto de dados no Python. Para tanto utilizamos o read_csv do pandas:

# Importando o conjunto de dados
pnadct_UF = pd.read_csv(
    filepath_or_buffer = 'https://raw.githubusercontent.com/jonates/opendata/master/pnad_continua/pnadct_UF.csv', 
    sep=';',
    decimal=','
)

Pronto! Vamos dar uma espiadinha no conjunto de dados bem como em sua estrutura:

# Espiando o conjunto de dados
pnadct_UF.tail()

Esse conjunto de dados possui os dados trimestrais desde o primeiro trimestre de 2012 até o último de 2021. Para o mapa, vamos selecionar a taxa mais recente deste conjunto de dados que é 2021.4:

# Filtrando somente o ultimo trimestre de 2021
pnadct_UF_20214 = pnadct_UF.query('TRIMESTRE==20214')

Agora, precisamos fazer o download do arquivo geoespacial para dentro do Google Colab:

# Fazendo download do conjunto de dados
!wget --verbose --show-progress --no-check-certificate https://raw.githubusercontent.com/jonates/opendata/master/arquivos_geoespaciais/unidades_da_federacao.json

Finalizado o download, carregamos o arquivo no formato *.json (é precisar importar a biblioteca json):

# Importando biblioteca necessária
import json

# Abrindo o JSON e guardando em um objeto Python
objeto_geo_uf = open('/content/unidades_da_federacao.json',)

# Lendo o arquivo georreferenciado no formato JSON
geo_uf = json.load(objeto_geo_uf) 

Para entender a estrutura deste arquivo *.json com informações geoespaciais das unidades da federação do Brasil, espiamos a instância relativa ao Distrito Federal, que por ser a menor do Brasil, o conjunto de informações que definem seu polígono é menos verboso que os das demais:

# Espiando a estrutura do json
geo_uf['features'][6]

Veja que a estrutura *.json relativa ao DF contém as coordenadas com as latitudes e longitudes que definem o seu polígono; e outras propriedades como Código da UF (CD_GEOCUF), Nome da Unidade da Federação (NM_ESTADO), e Grande Região na qual a UF está contida (NM_REGIAO). Atente-se ao fato de que a properties.NM_ESTADO será de suma importância pois será através dela que vamos ligar o dataframe com os dados de taxa de desocupação com o objeto de informações geoespaciais.


Para construir o mapa, utilizamos a biblioteca Plotly que precisa ser importada:

# Importando biblioteca necessaria
import plotly.express as px

Antes de fazer o mapa, é preciso fazer duas transformações no dataframe pnadct_UF_20214:

  1. colocar o nome dos municípios em letras maiúsculas igual ao objeto com informações geoespaciais;
  2. renomear NM_UF para NM_ESTADO para ficar igual ao objeto com informações geoespaciais.

Para colocar todas as letras em maiúsculas utilizamos o método str.upper() do Pandas:

# Criando o atributo NM_ESTADO com os nomes dos estados em letras maiúsculas igual ao do arquivo geoespacial
pnadct_UF_20214['NM_ESTADO'] = pnadct_UF_20214['NM_UF'].str.upper()

Agora o dataframe e os objetos estão totalmentes compatíveis e já é possível fazer o mapa utilizando o método choropleth_mapbox() da biblioteca plotly express:

# Criando o mapa
mapa_desemprego_uf = px.choropleth_mapbox(
    data_frame = pnadct_UF_20214, 
    geojson = geo_uf, 
    locations = 'NM_ESTADO', 
    featureidkey = 'properties.NM_ESTADO',
    color = 'TX_DESOCUPACAO',
    color_continuous_scale = 'blues',
    range_color = (5, 15),
    mapbox_style = 'open-street-map',
    zoom = 2.5, 
    center = {"lat": -17.14, "lon": -57.33},
    opacity = 1,
    labels = {'TX_DESOCUPACAO':'Taxa de desocupação (em %)', 
            'NM_ESTADO' : 'Unidade da Federação do Brasil'
    },
    width = 800,
    height = 600
)

# Ajustando as margens
mapa_desemprego_uf.update_layout(margin={'r':0,'t':0,'l':0, 'b':0})

# Exibindo o mapa
mapa_desemprego_uf.show()

Pronto! Mapa gerado com sucesso, com o popup funcionando, de modo que ao passar o mouse por cima do mapa, o nome das Unidades da Federação aparecem com suas respectivas taxas de desocupação.

E aí? Tranquilo?

Recomendo que você dê uma lida na documentação e em alguns materiais complementares listados abaixo para obter mais informações e detalhes dos métodos utilizados neste post:

Por fim, você pode baixar o notebook com todas essas informações diretamente do meu GitHub.

Tags: | | | | | | | | |

Sobre o Autor

Jonatas Silva Espirito Santo
Jonatas Silva Espirito Santo

Estatístico com ampla experiência em projetos de dados. Líder de projetos de pesquisas no Governo da Bahia. Desenvolvedor na linguagem R e Python. Tem conhecimentos SQL e Spark. Busca continuamente conhecimento na área de modelagem de dados e processamento de big data. Doutorando em Computação. Mestre e Bacharel em Estatística. Proativo, Flexível, Criativo e Inovador, de Boa comunicação, tem capacidade de adaptação e Liderança.

0 Comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *