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!