Gráficos em R

Vamos agora apresentar alguns gráficos simples de se fazer no R. Para não deixarmos os gráficos tão deselegantes a ponto de serem inúteis, vamos incluir algumas características em cada um. A base de dados utilizada será novamente a german_credit_2, que dessa vez será chamada de dados_credito, para não causar confusão.

1. Gráfico de Dispersão: Um dos mais fáceis de se fazer, basta utilizar a função plot(). Você pode fazer com todos os seus dados utilizando simplesmente o comando plot(dados_credito). Porém, como aqui temos diversas colunas, o resultado será ruim de se avaliar. Para facilitar a explicação e visualização, vamos escolher as colunas com a duração do crédito em meses, o montante do crédito e a idade do tomador do empréstimo. No primeiro código vamos mostrar como salvar o gráfico no seu diretório utilizando o jpeg() antes da função que traça o gráfico e o dev.off() após a função, caso você não feche o instrumento você não verá seu gráfico no arquivo salvo:

library(xlsx);
dados_credito = read.xlsx("C:/Users/Yukio/Desktop/german_credit_21.xlsx",
1, header=TRUE);

jpeg("../grafico_dispersao.jpeg"); ## guarda a img gerada
plot(dados_credito[, c(5,14)]); ## plota o grafico
dev.off();

## Poderíamos ter trocado dados_credito[, c(5,14)]
## por dados_credito[,c("DurationOfCreditMonth", "CreditAmount")

grafico_dispersao2Se quisermos um gráfico de dispersão com a reta que mais se ajusta aos pontos precisamos utilizar a função abline() e adicionar a reta que queremos. As vezes podemos utilizar simplesmente uma reta horizontal qualquer, caso a gente queira saber se os pontos estão distribuídos ao redor de algum valor. Aqui, queremos saber o comportamento dessas duas informações em conjunto, portanto, utilizaremos uma função de regressão linear:

plot(dados_credito[, c(3,6)]);
abline(lm(CreditAmount~DurationOfCreditMonth, data=dados_credito),
col="red"); 

## Para tracar uma reta horizontal como explicado acima,
## voce poderia fazer: abline(h=10000, col="red")

dispersao_linha

 

## grafico com combinacao de varias variaveis
jpeg("../grafico_dispersao.jpeg");
plot(dados_credito[, c(3,5,14)]);
dev.off();

grafico_dispersao

2. Histograma: Na função plot temos um gráfico que se assemelha a um histograma, mas não é, afinal um histograma é um gráfico de frequência de uma variável. Ele vai apresentar como sua variável está distribuída, se a maioria dos valores se concentra nas pontas, no meio, etc. Para fazer um histograma no R é bem fácil também, basta utilizar a função hist(). Como já é intuitivo para o leitor que o código hist(dados_credito$Age) vai nos retornar um histograma com a distribuição das idades, já vamos incluir o título do gráfico e alterar as cores das barras do histograma. Além disso, temos um exemplo com as quebras que o R tem como padrão, e um segundo com mais quebras utilizando breaks:

hist(dados_credito$Age, main = "Distribuição das Idades", xlab = "Idade",
ylab = "Frequência", col = 'blue');

hist2

hist(dados_credito$Age, main = "Distribuição das Idades", xlab = "Idade",
ylab = "Frequência", col = 'blue', breaks=100);

hist3

3. Boxplot: Mais um gráfico que está nos primeiros capítulos de todos os livros de estatística. O boxplot também serve para representar a distribuição dos seus dados. Neste gráfico, fica fácil visualizar onde seus dados estão concentrados porque você consegue ver a posição dos quartis, além dos outliers. No R você pode verificar a distribuição individualmente ou em pares:

boxplot(dados_credito$Age, main="Boxplot da Idade");

boxplot

boxplot(Age~DurationOfCreditMonth,data=dados_credito,
main = "Boxplot Cruzado",xlab="Idade", ylab="Duração do Crédito em Meses");

boxplot2

4. Mapa de Calor (Heatmap): O mapa de calor é uma forma de demonstrar dados bem bacana. Nele, você consegue marcar valores mais altos com uma cor e mais baixos com outra. Muita gente já deve ter utilizado a formatação condicional no excel, que é basicamente a mesma coisa. O mapa de calor no R é interessante para você ver, por exemplo, uma matriz de correlação. Sendo que aqui, você poderá ver os pares com correlação mais forte ou mais fraca de acordo com as cores utilizadas. Vejam dois exemplos com diferentes funções, novamente limitando um pouco nossos dados:

library(ggplot2);
library(reshape2);
colnames(dados_credito)[1:5] = c("Credibilidade","Saldo","Duração","Status",
"Motivo");
qplot(x=X1, y=X2, data=melt(cor(dados_credito[,c(1:5)], use="p")), fill=value,
geom="tile") +scale_fill_gradient2(limits=c(-1, 1));

heatmap1

install.packages("ggplot2")
library(ggplot2);
library(reshape2);
ggplot(data = melt(cor(dados_credito[,c(1:5)], use="p")),
aes(x=X1, y=X2, fill=value)) + geom_tile()+
scale_fill_gradient2(low="darkblue", high="darkgreen", guide="colorbar");

heatmap2

BÔNUS: DIVERSOS GRÁFICOS EM UMA MESMA JANELA

par(mfrow=c(3,2));
plot(dados_credito$Age);
boxplot(dados_credito$Age);
hist(dados_credito$Age);
plot(dados_credito$Age, type = 'l');
plot(dados_credito$Age, type = 'h');

multiple_graph

Leia também:
Personalizando seu gráfico do ggplot2 – Exports and Imports, William Playfair
Mais gráficos no R: qqplot()
Comparando graficamente dois grupos
Q-Q plot: Comparando duas distribuições
Análise Bidimensonal para Variáveis Quantitativas

Anúncios