Pular para o conteúdo principal
Documentos
Compartir
LinkedIn
Facebook
Twitter
Copy
Gerenciamento de dados em REntrada de dados em RGráficos em RDocumentação RInterface REstatísticas em R

Gráfico de dispersão no R

Gráfico de dispersão simples

Há muitas maneiras de criar um gráfico de dispersão no R. A função básica é plot(x , y), em que x e y são vetores numéricos que indicam os pontos (x,y) a serem plotados.

# Simple Scatterplot
attach(mtcars)
plot(wt, mpg, main="Scatterplot Example",
   xlab="Car Weight ", ylab="Miles Per Gallon ", pch=19)

(Para praticar a criação de um gráfico de dispersão simples, experimente este exemplo interativo do DataCamp) .

Gráfico de dispersão 689x689/public

A função scatterplot( ) do pacote car oferece muitos recursos aprimorados, incluindo linhas de ajuste, gráficos de caixa marginal, condicionamento de um fator e identificação interativa de pontos. Cada um desses recursos é opcional.

# Enhanced Scatterplot of MPG vs. Weight
#by Number of Car Cylinders
library(car)

scatterplot(mpg ~ wt | cyl, data=mtcars,
   xlab="Weight of Car", ylab="Miles Per Gallon",
   main="Enhanced Scatter Plot",
   labels=row.names(mtcars))
Scatterplot3 689x689/public

Matrizes de gráficos de dispersão

Há pelo menos quatro funções úteis para criar matrizes de gráficos de dispersão. Os analistas devem adorar as matrizes de dispersão!

# Basic Scatterplot Matrix
pairs(~mpg+disp+drat+wt,data=mtcars,
   main="Simple Scatterplot Matrix")

spmatrix1 689x689/public

O pacote lattice oferece opções para condicionar a matriz do gráfico de dispersão em um fator.

# Scatterplot Matrices from the lattice Package

library(lattice)
splom(mtcars[c(1,3,5,6)], groups=cyl, data=mtcars,
   panel=panel.superpose,
   key=list(title="Three Cylinder Options",
   columns=3,
   points=list(pch=super.sym$pch[1:3],
   col=super.sym$col[1:3]),
   text=list(c("4 Cylinder","6 Cylinder","8 Cylinder"))))

spmatrix2 689x689/public

O pacote car pode condicionar a matriz do gráfico de dispersão a um fator e, opcionalmente, incluir linhas lowess e lineares de melhor ajuste, além de boxplot, densidades ou histogramas na diagonal principal, bem como gráficos de tapete nas margens das células.

# Scatterplot Matrices from the car Package
library(car)
scatterplot.matrix(~mpg+disp+drat+wt|cyl, data=mtcars,
   main="Three Cylinder Options")

spmatrix3 689x689/public

O pacote gclus oferece opções para reorganizar as variáveis de modo que aquelas com correlações mais altas fiquem mais próximas da diagonal principal. Você também pode codificar as células por cores para refletir o tamanho das correlações.

# Scatterplot Matrices from the glus Package

library(gclus)
dta <- mtcars[c(1,3,5,6)] # get data
dta.r <- abs(cor(dta)) # get correlations
dta.col <- dmat.color(dta.r) # get colors
# reorder variables so those with highest correlation
# are closest to the diagonal
dta.o <- order.single(dta.r)

cpairs(dta, dta.o, panel.colors=dta.col, gap=.5,
main="Variables Ordered and Colored by Correlation"
)

Matriz esparsa 4/pública

Gráficos de dispersão de alta densidade

Quando há muitos pontos de dados e uma sobreposição significativa, os gráficos de dispersão se tornam menos úteis. Há várias abordagens que podem ser usadas quando isso ocorre. A função hexbin(x, y) no pacote hexbin fornece binning bivariado em células hexagonais (parece melhor do que parece).

# High Density Scatterplot with Binning
library(hexbin)
x <- rnorm(1000)
y <- rnorm(1000)
bin<-hexbin(x, y, xbins=50)

plot(bin, main="Hexagonal Binning")

Hexbin (1)/público

Outra opção para um gráfico de dispersão com sobreposição significativa de pontos é o gráfico de girassol. Consulte help(sunflowerplot) para obter detalhes.

Por fim, você pode salvar o gráfico de dispersão em formato PDF e usar a transparência de cores para permitir que os pontos que se sobrepõem apareçam (essa ideia vem do B.S. Everrit em HSAUR).

# High Density Scatterplot with Color Transparency
pdf("c:/scatterplot.pdf")

x <- rnorm(1000)
y <- rnorm(1000)

plot(x,y, main="PDF Scatterplot Example", col=rgb(0,100,0,50,maxColorValue=255), pch=16)
dev.off()

Alpha Scatter/public

Observação: Você pode usar a função col2rgb( ) para obter os valores rbg das cores R. Por exemplo, col2rgb("darkgreen") resulta em r=0, g=100, b=0. Em seguida, adicione o nível de transparência alfa como o quarto número no vetor de cores. Um valor de zero significa totalmente transparente. Consulte help(rgb) para obter mais informações.

Gráficos de dispersão 3D

Você pode criar um gráfico de dispersão 3D com o pacote scatterplot3d. Use a função scatterplot3d(x , y , z).

# 3D Scatterplot
library(scatterplot3d)
attach(mtcars)
scatterplot3d(wt,disp,mpg, main="3D Scatterplot")

S3D1 689x689/public

# 3D Scatterplot with Coloring and Vertical Drop Lines
library(scatterplot3d)
attach(mtcars)
scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
  type="h", main="3D Scatterplot")

S3D2 689x689/public

# 3D Scatterplot with Coloring and Vertical Lines
# and Regression Plane
library(scatterplot3d)
attach(mtcars)
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
  type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp)
s3d$plane3d(fit)

S3D3 689x689/public

Gráficos de dispersão 3D giratórios

Você também pode criar um gráfico de dispersão 3D interativo usando a função plot3D(x , y , z) no pacote rgl. Ele cria um gráfico de dispersão 3D giratório que pode ser girado com o mouse. Os três primeiros argumentos são os vetores numéricos x, y e z que representam os pontos. col= e size= controlam a cor e o tamanho dos pontos, respectivamente.

# Spinning 3d Scatterplot
library(rgl)

plot3d(wt, disp, mpg, col="red", size=3)

Plot3D 339x409/public

Você pode executar uma função semelhante com o scatter3d(x , y , z) no pacote Rcmdr.

# Another Spinning 3d Scatterplot
library(Rcmdr)
attach(mtcars)
scatter3d(wt, disp, mpg)

Gráfico de dispersão 3D/público

Para praticar

Experimente os exercícios de criação de gráficos de dispersão neste curso sobre visualização de dados em R.

Este conteúdo foi extraído do site statmethods.net.