PIB dos Estados Brasileiros (2021)

Análise exploratória com dados do IBGE/SIDRA

Data de Publicação

27 de maio de 2026


1 Sobre os dados

Os dados utilizados nesta análise foram obtidos diretamente da API do SIDRA/IBGE — Sistema IBGE de Recuperação Automática. Especificamente, foi consultada a Tabela 5938, que disponibiliza o Produto Interno Bruto (PIB) a preços correntes das Unidades da Federação para o ano de 2021, expresso em R$ milhões.

A malha geográfica dos estados foi obtida pelo pacote geobr, com referência ao ano de 2020.


2 Coleta e tratamento dos dados

Código
# Coleta dos dados de PIB via API do SIDRA
dados_sidra <- get_sidra(
  api = "/t/5938/n3/all/v/37/p/2021"
)

# Seleção e limpeza das colunas relevantes
pib_uf <- dados_sidra |>
  select(
    nome_uf   = `Unidade da Federação`,
    codigo_uf = `Unidade da Federação (Código)`,
    pib       = Valor
  ) |>
  mutate(
    codigo_uf = as.numeric(codigo_uf),
    pib       = as.numeric(pib),
    regiao    = case_when(
      codigo_uf %in% c(11, 12, 13, 14, 15, 16, 17) ~ "Norte",
      codigo_uf %in% c(21, 22, 23, 24, 25, 26, 27, 28, 29) ~ "Nordeste",
      codigo_uf %in% c(31, 32, 33, 35) ~ "Sudeste",
      codigo_uf %in% c(41, 42, 43) ~ "Sul",
      codigo_uf %in% c(50, 51, 52, 53) ~ "Centro-Oeste",
      TRUE ~ "Outro"
    )
  )

# Carregamento da malha geográfica
mapa_uf <- read_state(year = 2020, showProgress = FALSE)

# Join entre malha e dados de PIB
mapa_pib <- mapa_uf |>
  left_join(pib_uf, by = c("code_state" = "codigo_uf"))

3 Mapa — PIB por Unidade da Federação

Código
ggplot(mapa_pib) +
  geom_sf(aes(fill = pib), color = "white", linewidth = 0.3) +
  scale_fill_viridis_c(
    option = "plasma",
    labels = label_number(scale = 1e-6, suffix = " bi"),
    name   = "PIB (R$ bilhões)"
  ) +
  labs(
    title    = "PIB por Unidade da Federação — Brasil (2021)",
    subtitle = "Fonte: IBGE/SIDRA — Tabela 5938",
    caption  = "Malha geográfica: geobr"
  ) +
  theme_void(base_size = 13) +
  theme(
    plot.title      = element_text(face = "bold", hjust = 0.5, size = 15),
    plot.subtitle   = element_text(hjust = 0.5, color = "gray40"),
    plot.caption    = element_text(hjust = 0.5, color = "gray55", size = 9),
    legend.position = "right"
  )

O mapa evidencia uma forte concentração do PIB na região Sudeste, especialmente nos estados de São Paulo, Rio de Janeiro e Minas Gerais. As regiões Norte e Nordeste apresentam os menores valores absolutos de produto.


4 Gráfico — Ranking dos 10 maiores PIBs estaduais

Código
cores_regiao <- c(
  "Norte"        = "#2ecc71",
  "Nordeste"     = "#e67e22",
  "Sudeste"      = "#3498db",
  "Sul"          = "#9b59b6",
  "Centro-Oeste" = "#e74c3c"
)

pib_uf |>
  slice_max(pib, n = 10) |>
  mutate(nome_uf = reorder(nome_uf, pib)) |>
  ggplot(aes(x = pib, y = nome_uf, fill = regiao)) +
  geom_col(width = 0.7, show.legend = TRUE) +
  geom_text(
    aes(label = label_number(scale = 1e-6, suffix = " bi", accuracy = 1)(pib)),
    hjust   = -0.1,
    size    = 3.5,
    color   = "gray30"
  ) +
  scale_x_continuous(
    labels = label_number(scale = 1e-6, suffix = " bi"),
    expand = expansion(mult = c(0, 0.18))
  ) +
  scale_fill_manual(values = cores_regiao, name = "Região") +
  labs(
    title    = "Top 10 Unidades da Federação por PIB — Brasil (2021)",
    subtitle = "Fonte: IBGE/SIDRA — Tabela 5938",
    x        = "PIB (R$ bilhões)",
    y        = NULL
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title      = element_text(face = "bold", size = 14),
    plot.subtitle   = element_text(color = "gray45", size = 10),
    panel.grid.major.y = element_blank(),
    panel.grid.minor   = element_blank(),
    legend.position    = "bottom"
  )

São Paulo lidera com ampla margem, seguido por Minas Gerais e Rio de Janeiro. Nota-se que todos os dez maiores PIBs estaduais pertencem às regiões Sudeste, Sul e Centro-Oeste.


5 Tabela — PIB completo por Unidade da Federação

Código
pib_uf |>
  arrange(desc(pib)) |>
  mutate(
    rank      = row_number(),
    pib_bi    = pib / 1e6,
    pib_pct   = pib / sum(pib) * 100
  ) |>
  select(
    `#`           = rank,
    `Estado`      = nome_uf,
    `Região`      = regiao,
    `PIB (R$ bi)` = pib_bi,
    `Part. (%)`   = pib_pct
  ) |>
  kable(
    digits  = c(0, 0, 0, 1, 2),
    format.args = list(big.mark = ".", decimal.mark = ","),
    align   = c("c", "l", "c", "r", "r")
  ) |>
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width        = FALSE,
    position          = "center",
    font_size         = 13
  ) |>
  column_spec(1, bold = TRUE, width = "2em") |>
  column_spec(4, bold = TRUE) |>
  row_spec(0, bold = TRUE, background = "#2c3e50", color = "white") |>
  row_spec(1:3, background = "#fef9e7")
# Estado Região PIB (R$ bi) Part. (%)
1 São Paulo Sudeste 2.719,8 30,18
2 Rio de Janeiro Sudeste 949,3 10,53
3 Minas Gerais Sudeste 857,6 9,52
4 Rio Grande do Sul Sul 581,3 6,45
5 Paraná Sul 550,0 6,10
6 Santa Catarina Sul 428,6 4,76
7 Bahia Nordeste 352,6 3,91
8 Distrito Federal Centro-Oeste 286,9 3,18
9 Goiás Centro-Oeste 269,6 2,99
10 Pará Norte 262,9 2,92
11 Mato Grosso Centro-Oeste 233,4 2,59
12 Pernambuco Nordeste 220,8 2,45
13 Ceará Nordeste 194,9 2,16
14 Espírito Santo Sudeste 186,3 2,07
15 Mato Grosso do Sul Centro-Oeste 142,2 1,58
16 Amazonas Norte 131,5 1,46
17 Maranhão Nordeste 125,0 1,39
18 Rio Grande do Norte Nordeste 80,2 0,89
19 Paraíba Nordeste 77,5 0,86
20 Alagoas Nordeste 76,3 0,85
21 Piauí Nordeste 64,0 0,71
22 Rondônia Norte 58,2 0,65
23 Sergipe Nordeste 51,9 0,58
24 Tocantins Norte 51,8 0,57
25 Acre Norte 21,4 0,24
26 Amapá Norte 20,1 0,22
27 Roraima Norte 18,2 0,20

6 Considerações finais

A análise dos dados do SIDRA/IBGE para 2021 reforça as conhecidas assimetrias regionais da economia brasileira:

  • O estado de São Paulo sozinho responde por cerca de 30% do PIB nacional.
  • As regiões Norte e Nordeste, apesar de concentrarem grande parte da população e do território, têm participação proporcionalmente reduzida no produto total.
  • O Centro-Oeste se destaca pelo Distrito Federal, que apresenta PIB per capita elevado devido à presença da administração pública federal.

Análise produzida com R • Pacotes: sidrar, geobr, ggplot2, dplyr, kableExtra