-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy path7_aopdata_populacao.qmd
137 lines (114 loc) · 6.34 KB
/
7_aopdata_populacao.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Dados de população e socioeconômicos
Os dados de distribuição espacial da população e de suas características em termos de renda *per capita*, cor, sexo e idade, provenientes do Censo 2010 e agregados pelo projeto AOP, podem ser baixados com a função `read_population()`. A função requer que um valor seja passado para o parâmetro `city`, utilizado para indicar a cidade cujos dados devem ser baixados. Para baixar os dados com as informações espaciais de cada célula da grade, o parâmetro `geometry` deve receber o valor `TRUE` (por padrão, esse valor é `FALSE`, fazendo com que a geometria das células não seja baixada).
No exemplo a seguir, mostramos como baixar os dados populacionais e socioeconômicos de Fortaleza:
```{r}
#| message: false
#| warning: false
# baixa os dados sociodemográficos do AOP
dados_fortaleza <- aopdata::read_population(
city = "Fortaleza",
year = 2010,
geometry = TRUE,
showProgress = FALSE
)
```
A tabela baixada inclui o ano de referência do censo demográfico, dados de identificação do hexágono e do município e dados socioeconômicos em colunas cujos nomes estão codificados:
```{r}
names(dados_fortaleza)
```
A @tbl-population_dictionary apresenta a descrição de cada uma das colunas da tabela, bem como observações sobre alguns de seus valores. Essa descrição também pode ser consultada na documentação da função, rodando em uma sessão do R o comando `?read_population`.
```{r}
#| echo: false
#| label: tbl-population_dictionary
#| tbl-cap: Descrição das colunas da tabela de dados populacionais e socioeconômicos
tbl <- tibble::tribble(
~Coluna, ~Descrição, ~Observação,
"year", "Ano de referência", "",
"id_hex", "Identificador único do hexágono", "",
"abbrev_muni", "Sigla de três letras do município", "",
"name_muni", "Nome do município", "",
"code_muni", "Código de sete dígitos do IBGE do município", "",
"P001", "Quantidade total de pessoas", "",
"P002", "Quantidade de pessoas brancas", "",
"P003", "Quantidade de pessoas negras", "",
"P004", "Quantidade de pessoas indígenas", "",
"P005", "Quantidade de pessoas de cor amarela", "",
"P006", "Quantidade de homens", "",
"P007", "Quantidade de mulheres", "",
"P010", "Quantidade de pessoas de 0 a 5 anos", "",
"P011", "Quantidade de pessoas de 6 a 14 anos", "",
"P012", "Quantidade de pessoas de 15 a 18 anos", "",
"P013", "Quantidade de pessoas de 19 a 24 anos", "",
"P014", "Quantidade de pessoas de 25 a 39 anos", "",
"P015", "Quantidade de pessoas de 40 a 69 anos", "",
"P016", "Quantidade de pessoas de 70 anos ou mais", "",
"R001", "Renda *per capita* média", "Valores de 2010 (em R$)",
"R002", "Quintil de renda", "Valores de 1 (mais pobres) a 5 (mais ricos)",
"R003", "Decil de renda", "Valores de 1 (mais pobres) a 10 (mais ricos)",
"geometry", "Geometria espacial", ""
)
knitr::kable(tbl)
```
As subseções a seguir mostram exemplos de visualizações desses dados em forma de mapas.
## Mapa de população total
No código a seguir, carregamos bibliotecas de visualização de dados e configuramos o mapa. Com um comando, podemos visualizar a distribuição espacial da população de Fortaleza. A @fig-pop_dist mostra um mapa coroplético no qual a cor de cada célula da grade espacial é preenchida com base na quantidade total de pessoas que ali residem (variável `P001`).
```{r}
#| message: false
#| warning: false
#| label: fig-pop_dist
#| fig-cap: Distribuição populacional em Fortaleza
library(patchwork)
library(ggplot2)
ggplot(subset(dados_fortaleza, P001 > 0)) +
geom_sf(aes(fill = P001), color = NA, alpha = 0.8) +
scale_fill_distiller(palette = "YlOrRd", direction = 1) +
labs(fill = "Contagem\npopulacional") +
theme_void()
```
## Mapa de população por cor
Além da informação sobre a população total em cada célula, os dados também informam a contagem populacional por classificações de cor (variáveis `P002` a `P005`), sexo (variáveis `P006` e `P007`) e faixa etária (variáveis `P010` a `P016`) em cada unidade espacial. O código a seguir ilustra como é simples calcular a proporção de pessoas negras e brancas em cada hexágono e visualizar essas proporções em um mapa.
```{r}
#| label: fig-pop_dist_by_color
#| fig-cap: Proporção de pessoas negras e brancas em Fortaleza
pop_negra <- ggplot(subset(dados_fortaleza, P001 > 0)) +
geom_sf(aes(fill = P003 / P001), color = NA, alpha = 0.8) +
scale_fill_distiller(
name = NULL,
palette = "RdPu",
direction = 1,
labels = scales::percent,
limits = c(0, 1)
) +
labs(title = "Proporção de pessoas negras") +
theme_void()
pop_branca <- ggplot(subset(dados_fortaleza, P001 > 0)) +
geom_sf(aes(fill = P002 / P001), color = NA, alpha = 0.8) +
scale_fill_distiller(
name = NULL,
palette = "YlGnBu",
direction = 1,
labels = scales::percent,
limits = c(0, 1)
) +
labs(title = "Proporção de pessoas brancas") +
theme_void()
pop_negra + pop_branca
```
## Mapa de população por renda
Por fim, os dados também trazem informações sobre a renda *per capita* média de cada hexágono (`R001`) e sua classificação em termos de quintil (`R002`) e decil de renda (`R003`). Com esses dados, podemos visualizar a distribuição espacial dos níveis de renda na cidade.
```{r}
#| label: fig-income_dist
#| fig-cap: Distribuição de renda em Fortaleza
renda <- ggplot(subset(dados_fortaleza, P001 > 0)) +
geom_sf(aes(fill = R001), color = NA, alpha = 0.8) +
scale_fill_distiller(name = NULL, palette = "YlOrRd", direction = 1) +
labs(title = "Renda per capita média (R$)") +
theme_void()
decis <- ggplot(subset(dados_fortaleza, !is.na(R002))) +
geom_sf(aes(fill = factor(R003)), color = NA, alpha = 0.8) +
scale_fill_brewer(name = NULL, palette = "RdBu") +
labs(title = "Decis de renda per capita") +
theme_void() +
theme(legend.key.size = unit(0.3, "cm"))
renda + decis
```