Aula 1 - Introdução a visualização de dados
2024-02-03
Aula 1
Ferramentas úteis:
1 - Use o conjunto de dados ‘casas’ do pacote ‘dados’ para responder as questões a seguir.
Identifique duas variáveis categóricas. Liste cinco exemplos de valores únicos para uma das variáveis categóricas.
Utilizando o pacote de gráficos base do R, escolha uma variável contínua e gere um histograma para visualizar a distribuição. Explique o que você observa no gráfico.
2 - Use o conjunto de dados ‘dados_atmosfera’ do pacote ‘dados’ para responder as questões a seguir.
Utilizando o pacote de gráficos base do R, crie um gráfico de barras para representar a distribuição da variável categórica “nuvem_baixa”. Adicione rótulos aos eixos.
Crie um gráfico de dispersão para visualizar a relação entre as variáveis contínuas “temp_superficie” e “pressao”. Adicione rótulos aos eixos x e y, e destaque cores diferentes para cada ano (utilizando a variável categórica “ano”).
Identificando todas as variáveis não numéricas do conjunto de dados
[1] "pid" "moradia_classe"
[3] "moradia_zoneamento" "rua_tipo"
[5] "beco_tipo" "lote_formato"
[7] "terreno_contorno" "utilidades"
[9] "lote_config" "terreno_declive"
[11] "vizinhanca" "condicao_1"
[13] "condicao_2" "moradia_tipo"
[15] "moradia_estilo" "geral_qualidade"
[17] "geral_condicao" "telhado_estilo"
[19] "telhado_material" "exterior_cobertura_1"
[21] "exterior_cobertura_2" "alvenaria_tipo"
[23] "exterior_qualidade" "exterior_condicao"
[25] "fundacao_tipo" "porao_qualidade"
[27] "porao_condicao" "porao_exposicao"
[29] "porao_acabamento_1" "porao_acabamento_2"
[31] "aquecimento_tipo" "aquecimento_qualidade_condicao"
[33] "ar_condicionado_central" "sistema_eletrico_tipo"
[35] "cozinha_qualidade" "funcional"
[37] "lareira_qualidade" "garagem_tipo"
[39] "garagem_acabamento" "garagem_qualidade"
[41] "garagem_condicao" "entrada_veiculo_pavimentada"
[43] "piscina_qualidade" "cerca_qualidade"
[45] "funcionalidades_diversas" "venda_tipo"
[47] "venda_condicao"
Listando cinco exemplos de valores únicos para a variável categórica “vizinhanca”
Criando um histograma para a variável contínua “area_construida”
Criando um gráfico de barras para a variável categórica “nuvem_baixa”
Criando um gráfico de dispersão para as variáveis contínuas “temp_superficie” e “pressao”
# Criar o gráfico
plot(dados_atmosfera$temp_superficie, dados_atmosfera$pressao,
col = as.numeric(dados_atmosfera$ano), pch = 19,
xlab = "Temperatura da Superfície",
ylab = "Pressão",
main = "Relação entre Temperatura da Superfície e Pressão"
)
# Adicionar a legenda
legend(
"topright",
legend = unique(dados_atmosfera$ano),
col = unique(as.numeric(dados_atmosfera$ano)),
pch = 19,
title = "Ano",
bg = "lightgray"
)
O que é a gramática dos gráficos?
# Dados: Este é o conjunto de dados que queremos visualizar.
data <- mtcars
# Aesthetics: Mapeia variáveis nos dados para aspectos visuais do gráfico.
aes <- aes(x = mpg, y = hp)
# Geometrias: Descreve o tipo de gráfico que queremos criar.
geom <- geom_point()
# Escalas: Controla como os dados são mapeados para os aspectos visuais do gráfico.
scale <- scale_y_log10()
# Estatísticas: Realiza cálculos nos dados.
stat <- stat_summary(fun = mean, geom = "point", color = "red", size = 3)
# Coordenadas: Define o sistema de coordenadas do gráfico.
# Tema: Controla a aparência não-dados do gráfico, como a cor de fundo e a fonte do texto.
theme <- theme_minimal()
# Títulos e legendas
labels <- labs(
title = "Relação entre MPG e HP",
x = "MPG",
y = "HP (escala logarítmica)",
color = "Número de cilindros"
)
# Criar o gráfico
ggplot(data, aes) + geom + scale + stat + theme + labels
# Criar o gráfico
ggplot(mtcars, aes(x = mpg, y = hp)) +
geom_point() +
scale_y_log10() +
facet_wrap(~am) + # cria uma faceta para cada valor único da variável am (transmissão manual ou automática)
stat_summary(fun = mean, geom = "point", color = "red", size = 3) +
theme_minimal() +
labs(
title = "Relação entre MPG e HP",
x = "MPG",
y = "HP (escala logarítmica)",
color = "Número de cilindros"
)
O argumento color mapeia uma variável categórica para as cores dos pontos
Se quisermos definir uma cor especifica temos que tomar cuidado com a localização do argumento color, por exemplo, se quisermos que todos os pontos sejam vermelhos, devemos colocar o argumento color dentro da função geom_point mas fora da função aes. Mas se quisermos mapear uma variável contínua para as cores dos pontos, devemos colocar o argumento color dentro da função aes.
O argumento fill mapeia uma variável categórica para o preenchimento das barras, a diferença entre color e fill é que color mapeia para a cor da borda e fill mapeia para o preenchimento.
Exemplo
Exemplo
x <- seq(1, 100, 1)
y <- x
plot(x, y, type = "l", col = "blue", lwd = 2, xlab = "X", ylab = "Y", main = "Gráfico com Escala Linear")
# Dados
x <- seq(1, 100, 1)
y <- exp(x)
# Gráfico com escala logarítmica no eixo y
plot(x, y,
type = "l", col = "blue", lwd = 2,
xlab = "X", ylab = "Y (log scale)",
main = "Gráfico com Escala Logarítmica",
log = "y"
)
Escalas logarítmicas são usadas quando os dados variam de forma exponencial
Quando precisamos representar variáveis em escalas diferentes, podemos usar a função scale_x_log10() ou scale_y_log10() para poder visualizar os dados de forma mais clara. No exemplo abaixo queremos comparar duas regressões que tem ordem de grandeza diferente, para isso usamos a escala logarítmica no eixo y.
x <- seq(1, 100, 1)
y1 <- x
y2 <- exp(x)
# Gráfico com escala logarítmica no eixo y
df <- data.frame(x = rep(x, 2), y = c(y1, y2), modelo = rep(c("linear", "exponencial"), each = length(x)))
ggplot(df, aes(x = x, y = y, color = modelo)) +
geom_line() +
scale_y_log10() +
labs(title = "Escala logarítmica", x = "X", y = "Y (Escala log)") +
theme_minimal()
Usando o conjunto de dados casas, vamos criar um gráfico de barras para visualizar a distribuição da variável categórica “porao_qualidade” e adicionar rótulos aos eixos de forma que a escala seja percentual.
Também podemos adicionar rótulos para cada barra com a função geom_text
casas %>%
count(porao_qualidade) %>%
mutate(percentual = n / sum(n)) %>%
ggplot(aes(x = reorder(porao_qualidade, -percentual), y = percentual, fill = porao_qualidade)) +
geom_bar(stat = "identity", color = "black") +
labs(title = "Distribuição da qualidade do porão", x = "Qualidade do porão", y = "Percentual") +
scale_y_continuous(labels = scales::percent) +
geom_text(aes(label = scales::percent(percentual)), vjust = -0.5) + # Adiciona rótulos e ajusta a posição
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) # Centraliza o título
casas %>%
ggplot(aes(x = garagem_area)) +
geom_histogram(binwidth = 100, fill = "orange", color = "red") + # binwidth define a largura das barras
labs(title = "Distribuição da área da garagem", x = "Área da garagem", y = "Frequência") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) # Centraliza o título
casas %>%
ggplot(aes(x = porao_qualidade, y = construcao_ano, fill = porao_qualidade)) +
geom_boxplot() +
labs(title = "Distribuição da área construída por qualidade do porão", x = "Qualidade do porão", y = "Ano") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) # Centraliza o título
O pacote esquisse é uma ferramenta interativa para explorar e visualizar dados. podemos usá-lo para criar gráficos rapidamente e explorar a relação entre variáveis.
Utilize o pacote esquisse para explorar o conjunto de dados casas. Crie dois gráficos, um explorando variáveis categóricas e outro explorando variáveis contínuas. Apresente os gráficos e comente sobre as relações observadas.
Procure um conjunto de dados do seu interesse e crie um relatório exploratório dos dados utilizando o pacote esquisse. O relatório deve conter: um gráfico de barras, um histograma, um boxplot e um gráfico de dispersão. Comente sobre as relações observadas nos gráficos.
Sugestões :
Caso não tenha um conjunto de dados específico em mente, você pode utilizar um dos conjuntos de dados disponíveis no pacote ‘dados’ ou no kaggle.
O relatório deve ser entregue em um arquivo qmd ou rmd.
Universidade Federal Fluminense - Programa de formação de executivos - Ciência de dados