Desenhando Gráficos de Diversas Variáveis no R

Algo muito útil para qualquer análise exploratória é poder traçar vários gráficos de uma vez só, num mesmo quadro. Tanto a possibilidade de traçar um histograma e um boxplot de uma determinada variável lado a lado, quanto a de traçar o histograma de todas as variáveis da base são muitos úteis na análise exploratória. Neste post, veremos algumas das possibilidades existentes no R:Utilizaremos uma base de diagnósticos de Diabetes na India. A base se encontra no Kaggle e você pode baixá-la aqui – vá em Download, descompacte a base e jogue no local em que está seu Working Directory. Agora, vamos primeiro lembrar que para traçarmos dois gráficos lado a lado, ou um em cima do outro, devemos utilizar o comando par(mfrow=c(n,m)), onde n é o número de linhas e m é o número de colunas. Ou seja, se você utilizar par(mfrow=c(1,3)), seus 3 gráficos ficarão dispostos lado a lado em uma única linha. Já se utilizar par(mfrow=c(2,1)), você terá dois gráficos em uma única coluna, ou seja, um sobre o outro. Vejamos dois exemplos:

par(mfrow=c(2,2))

hist(data$Pregnancies)

hist(data$Glucose)

plot(data$BloodPressure)

plot(data$SkinThickness)

par(mfrow=c(3,1))

hist(data$Pregnancies)

hist(data$Glucose)

plot(data$BloodPressure)

Agora, imagine que você queira traçar o gráfico de diversas variáveis, ficaria complicado utilizar o modelo acima. Então, há algumas opções para isso, como por exemplo montar um loop percorrendo todas as variáveis:

# escolhe como os graficos ficarao dispostos os 9 graficos

par(mfrow=c(3,3))

# plota histograma da 1a ate a 9a variavel

for(i in 1:9) {
hist(data[,i], main=names(data)[i])
}

Claro que você não precisa se restringir ao histograma, veja um exemplo diferente usando boxplot:

# escolhe como os graficos ficarao dispostos

par(mfrow=c(2,3))

# plota histograma da 1a ate a 6a variavel

for(i in 1:6) {
boxplot(data[,i], main=names(data)[i])
}

Para o histograma, é possível utilizar a função multi.hist() da biblioteca psych para obter os histogramas de todas as variáveis da base, já incluindo a curva de densidade:

library(psych)

multi.hist(data)

 

Como você pode ver, os gráficos precisam de mais espaço para que se possa compreendê-los, já que é bastante informação em um único lugar. Ainda assim, eu gosto bastante dessa função (nada que um zoom não resolva).

Agora, uma que descobri recentemente através da resposta do @VitorPestana foi o facet_wrap() que ao ser adicionado ao ggplot cria diversos painéis. Nesse caso, como há inúmeras possibilidades de uso do facet_wrap(), vou deixar para falar dele em um post dedicado inteiramente ao ggplot(), pois acho interessante que um cientista de dados saiba utilizá-lo.

Espero que tenham aproveitado este post. Bons estudos e até a próxima!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *