# Carregando bibliotecas
library(ggplot2)
# Dados extraídos de: https://www.populationpyramid.net/pt/brasil/2023/#google_vignette
<- c('0-4', '5-9', '10-14', '15-19', '20-24', '25-29', '30-34', '35-39', '40-44', '45-49',
idade '50-54', '55-59', '60-64', '65-69', '70-74', '75-79', '80-84', '85-89', '90-94', '95-99', '100+')
<- c(7048276, 7458718, 7571355, 7902645, 8388853, 8626910, 8573161, 8715312, 8275450, 7230207,
masculino 6355937, 5736755, 4904223, 3748986, 2675453, 1653264, 944483, 350303, 72217, 8207, 396)
<- c(6766804, 7165577, 7280500, 7624131, 8159904, 8465096, 8495865, 8753351, 8478260, 7571613,
feminino 6814563, 6331430, 5625694, 4534686, 3467790, 2283019, 1459935, 677986, 193494, 29591, 2036)
# Criando um data frame
<- data.frame(idade, masculino, feminino)
dados
# Gráfico
<- ggplot(dados, aes(x = idade)) +
grafico1 geom_bar(aes(y = -masculino, fill = "Masculino"), stat = "identity", position = "identity") +
geom_bar(aes(y = feminino, fill = "Feminino"), stat = "identity", position = "identity") +
coord_flip()
grafico1
Gráfico de pirâmide populacional do Brasil
Raymundo Eduardo Pilz
2023-09-12
UNIVERSIDADE FEDERAL DO PARANÁ
CE303 – VISUALIZAÇÃO DE DADOS APLICADA
Profº Dr. Anderson Ara
Aluno: GRR20233881 – Raymundo Eduardo Pilz
12/09/2023
GRÁFICO NÃO-CONVENCIONAL
- Gráfico de pirâmide populacional simples
GRÁFICO CONVENCIONAL
- Gráfico de pirâmide populacional (dados extraídos em: https://www.populationpyramid.net/pt/brasil/2023/#google_vignette)
# Carregando bibliotecas
library(ggplot2)
# Dados extraídos de: https://www.populationpyramid.net/pt/brasil/2023/#google_vignette
<- c('0-4', '5-9', '10-14', '15-19', '20-24', '25-29', '30-34', '35-39', '40-44', '45-49',
idade '50-54', '55-59', '60-64', '65-69', '70-74', '75-79', '80-84', '85-89', '90-94', '95-99', '100+')
<- c(7048276, 7458718, 7571355, 7902645, 8388853, 8626910, 8573161, 8715312, 8275450, 7230207,
masculino 6355937, 5736755, 4904223, 3748986, 2675453, 1653264, 944483, 350303, 72217, 8207, 396)
<- c(6766804, 7165577, 7280500, 7624131, 8159904, 8465096, 8495865, 8753351, 8478260, 7571613,
feminino 6814563, 6331430, 5625694, 4534686, 3467790, 2283019, 1459935, 677986, 193494, 29591, 2036)
# Convertendo a população para milhões
<- masculino / 1000000
masculino <- feminino / 1000000
feminino
# Criando um data frame para armazenar os dados
<- data.frame(idade, masculino, feminino)
dados
# Criando índice para ordenar o eixo x
$indice <- 1:length(idade)
dados
# Manipulando eixo y, definindo intervalo de exibição do eixo y
= c(-10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10)
brks
# Criando o gráfico
<- ggplot(dados, aes(x = reorder(idade,indice))) +
grafico2 geom_bar(aes(y = -masculino, fill = "Masculino"), stat = "identity", position = "identity") + # com o sinal "-" para que essas informação apareçam no lado esquerdo do gráfico
geom_bar(aes(y = feminino, fill = "Feminino"), stat = "identity", position = "identity") +
scale_fill_manual(values = c("Masculino" = "darkblue", "Feminino" = "pink"),
breaks = c("Masculino", "Feminino"), # ordem dos itens na legenda
labels = c("Masculino", "Feminino")) + # rótulos na legenda
labs(title = "Pirâmide Populacional do Brasil", # Título do grafico
x = "Faixa Etária", # eixo x, no final será invertido
y = "População (em milhões)", # eixo y, no final será invertido
fill = "Sexo") +
scale_y_continuous(breaks = brks, # inserindo o intervalo definido
limits = c(-10, 10), # inserindo o limite do intervalo para que as colunas tenham o mesmo comprimento de ambos os lados
labels = abs(brks)) + # Resolvendo o problema de valores negativos em masculino
theme_classic() + # inserindo tema para auxiliar na impressao do grafico
coord_flip() + # virando os eixos do gráfico, para transformar em um gráfico de piramide
theme(legend.position = c(0.9, 0.9), # Legenda no canto superior direito
plot.title = element_text(hjust = 0.5)) # Centraliza o título
grafico2
O presente trabalho foi desenvolvido na matéria do 2º período (2023) da disciplina de CE303 – Visualização de Dados Aplicada, ministrada pelo professor Anderson Ara pela Universidade Federal do Paraná (UFPR)