Como fazer um gráfico de dispersão no R usando ggplot2

Aprenda a utilizar o pacote #ggplot2 para criar gráficos de dispersão. #rstats #DataViz

Existe alguma correlação entre a cilindrada de um motor e seu rendimento?

Para responder essa pergunta, utilizaremos gráficos de dispersão para avaliar se há alguma correlação entre elas, sendo que utilizaremos o pacote ggplot2 no R (esse processo também pode ser feito usando a função plot() ou até mesmo no Excel).

Nos acompanhe para aprender como fazer um gráfico de dispersão (scatterplot) no R.

Nosso código irá iniciar com a função install.packages(), caso você ainda não tenha instalado o pacote ggplot2, seguida da função library() para carrega-lo e da função data() para carregar o conjunto de dados “mpg” do pacote ggplot2.


install.packages(ggplo2)
library(ggplot2)
data("mpg", package = "ggplot2")

O conjunto de dados “mpg” apresenta 234 linhas e 11 variáveis de um banco de dados da EPA (agência de meio ambiente norte americana) sobre o rendimento de automóveis, entre os anos de 1999 e 2008. Algumas variáveis são: Nome do modelo, número de cilindros e rendimento na cidade.

Os gráficos gerados pelo ggplot2 devem ser sempre associadas a uma variável, ou seja, utilizando forma x <- y, para posteriormente sendo gerados com a função plot(). Veja o código abaixo:


graf_disp <- ggplot(mpg, aes(x=displ, y=cty)) +
  geom_point(aes(col=fl)) +
  geom_smooth(method="loess", se = F) +
  labs(subtitle = "Eficiência de Combustíveis",
       y = "Eficiência na Cidade (milhas por galão)", x = "Volume de Cilindradas (l)",
       caption = "Fonte: mpg + Blog 2 Engenheiros")

plot(graf_disp)

Note que associamos à variável graf_disp vários itens, onde cada item representa uma parte do gráfico.

No item ggplot(), indicamos quais são os valores de x e y, indicando primeiramente o conjunto de dados (neste caso, mpg), e depois inserimos dentro do parâmetro aes() quem é x e quem é y. O item aes() também mostra como os parâmetros serão apresentados.

Em seguida, utilizamos um sinal de mais (+) para mostrar para o R que há outro elemento para ser considerado.

Neste caso, apresentamos o item geom_point(), a qual apresentará as características dos pontos, tais como tamanho e cores. Aqui, indicamos que as cores devem ser diferentes para combustíveis diferentes. Onde cada item é:

  • c: GNV;
  • d: Diesel;
  • e: Etanol;
  • p: Premium;
  • r: Combustível comum.

O item geom_smooth() traça um curva/reta representando uma regressão dos dados que plotamos, sendo que method determina o modo de regressão e se mostra se deve ser plotado ou não o intervalo de confiança.

Por fim, temos o item labs() para plotarmos as legendas, títulos e nomes dos eixos.

Relação entre cilindradas e rendimento de automóvel na cidade.
Relação entre cilindradas e rendimento de automóvel na cidade.

A legenda, da forma como está apresentada, não nos diz muita coisa. Como podemos modificar ela?

Para modificar a legenda, iremos adicionar mais um bloco de informações, usaremos scale_color_manual() para mudar o nomes dos rótulos e as suas cores. Confira o código abaixo:


graf_disp + scale_color_manual(labels = c("GNV", "Diesel", "Etanol", "Premium", "Comum"),
values = c("#130912", "#602749", "#17468f", "#639468", "#ed2327")) +
labs(color = "Combustível")

Não precisamos repetir toda as linhas de códigos anteriores para testar novos gráficos, basta usarmos nosso gráfico base (neste caso graf_disp) e adicionarmos outros elementos.

Junto ao elemento scale_color_manual(), também definimos as cores dos pontos pelo item values, fornecendo um vetor com vários códigos hexadecimais de cores. Em seguida, adicionamos mais um complemento ao item labs() que seria o nome da nossa legenda.

Relação entre cilindradas, eficiência e combustíveis.
Relação entre cilindradas, eficiência e combustíveis.

Agora que geramos nossos gráficos de dispersão, o que ele nos informa? Como interpretar seus dados?

Basicamente, podemos verificar que, de modo geral, conforme aumentamos a cilindrada (volume de deslocamento do motor) do automóvel perdemos eficiência. O raciocínio inverso também é válido, quanto menor a cilindrada, maior o rendimento na cidade.

Entretanto, ao aproximarmos de um volume de 5,5 litros de cilindradas, temos um ligeiro aumento de eficiência.

Teste nosso código utilizando outras variáveis (tais como hwy – rendimento em rodovias, cyl – número de cilindros) e verifique se as correlações se mantem.

Leia também: Como criar gráficos de barras no R.

Caso você tenha alguma dúvida, fique à vontade e comente abaixo.

Consulte mais em: Top 50 ggplot2 visualizations – The master list (with full R code).



Clique na figura abaixo e responda nosso questionário para receber nosso ebook "Como criar mapas de localização com ArcGIS 10.x".


Author: Fernando BS

Engenheiro Ambiental e de Segurança do Trabalho. Atua nas áreas de recuperação ambiental, geoprocessamento e ciência do solo. Busca soluções utilizando softwares como ArcGIS, R e MATLAB.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *