visualização de dados lattice e ggplot2 (uma...
TRANSCRIPT
Visualização de dados Lattice e ggplot2 (umaintrodução)
David Henriques da Matta e Omar Abbara
Universidade Estadual de CampinasR Campinas User Group
16 de setembro, 2015
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Objetivos
O objetivo desta apresentação é dar início ao estudo do pacoteggplot2 do software R.
Dentre os diversos pacotes disponíveis no software R paraanálise gráfica, podemos citar o Lattice como um importanteantecessor do ggplot2.Antes de iniciarmos os estudos ggplot2 introduziremos portantoalgumas formas e características da análise gráfica via Lattice("Lattice: Multivariate Data Visualization With R").Introduziremos também algumas análises gráficas pontuais deoutros pacotes que julgarmos interessantes.
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Objetivos
O objetivo desta apresentação é dar início ao estudo do pacoteggplot2 do software R.Dentre os diversos pacotes disponíveis no software R paraanálise gráfica, podemos citar o Lattice como um importanteantecessor do ggplot2.
Antes de iniciarmos os estudos ggplot2 introduziremos portantoalgumas formas e características da análise gráfica via Lattice("Lattice: Multivariate Data Visualization With R").Introduziremos também algumas análises gráficas pontuais deoutros pacotes que julgarmos interessantes.
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Objetivos
O objetivo desta apresentação é dar início ao estudo do pacoteggplot2 do software R.Dentre os diversos pacotes disponíveis no software R paraanálise gráfica, podemos citar o Lattice como um importanteantecessor do ggplot2.Antes de iniciarmos os estudos ggplot2 introduziremos portantoalgumas formas e características da análise gráfica via Lattice("Lattice: Multivariate Data Visualization With R").
Introduziremos também algumas análises gráficas pontuais deoutros pacotes que julgarmos interessantes.
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Objetivos
O objetivo desta apresentação é dar início ao estudo do pacoteggplot2 do software R.Dentre os diversos pacotes disponíveis no software R paraanálise gráfica, podemos citar o Lattice como um importanteantecessor do ggplot2.Antes de iniciarmos os estudos ggplot2 introduziremos portantoalgumas formas e características da análise gráfica via Lattice("Lattice: Multivariate Data Visualization With R").Introduziremos também algumas análises gráficas pontuais deoutros pacotes que julgarmos interessantes.
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: Carregando Dados
library("lattice")data(Chem97,package ="mlmRev")data(barley,package ="lattice")data(postdoc, package = "latticeExtra")data(Oats, package = "MEMSS")data(Cars93, package = "MASS")
xtabs(~ score, data=Chem97)
## score## 0 2 4 6 8 10## 3688 3627 4619 5739 6668 6681
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: histogram
histogram(~gcsescore|factor(score),data=Chem97,aspect =0.7)
gcsescore
Per
cent
of T
otal
0
10
20
30
0 2 4 6 8
0 2
0 2 4 6 8
4
6
0 2 4 6 8
8
0
10
20
30
10
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: densityplot
densityplot(~gcsescore|factor(score),data=Chem97,plot.points=FALSE,layout=c(3,2),aspect =0.7)
gcsescore
Den
sity
0.0
0.2
0.4
0.6
0 2 4 6 8
0 2
0 2 4 6 8
4
6
0 2 4 6 8
8
0.0
0.2
0.4
0.6
10
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: densityplot
densityplot(~gcsescore|factor(score,c("10","8","6","4","2","0")),data=Chem97,plot.points=TRUE,aspect =0.7)
gcsescore
Den
sity
0.0
0.2
0.4
0.6
0 2 4 6 8
10 8
0 2 4 6 8
6
4
0 2 4 6 8
2
0.0
0.2
0.4
0.6
0
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: densityplot
densityplot(~gcsescore,data=Chem97,groups=score, aspect=0.3,plot.points=FALSE,auto.key=list(columns=3))
gcsescore
Den
sity
0.0
0.2
0.4
0.6
0 2 4 6 8
02
46
810
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: bwplot
bwplot(~gcsescore|factor(score),data=Chem97)
gcsescore
0 2 4 6 8
0 2
0 2 4 6 8
4
6
0 2 4 6 8
8 10
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: bwplot
bwplot(gcsescore~factor(score)|factor(gender),data=Chem97,aspect=0.7)gc
sesc
ore
0
2
4
6
8
0 2 4 6 8 10
M
0 2 4 6 8 10
F
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: bwplot
bwplot(gcsescore~factor(gender)|factor(score),data=Chem97)gc
sesc
ore
0
2
4
6
8
M F
0
M F
2
M F
4
6 8
0
2
4
6
8
10
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: bwplot
bwplot(gcsescore~factor(gender)|factor(score),data=Chem97,panel = panel.violin,aspect =0.7)
gcse
scor
e
0
2
4
6
8
M F
0
M F
2
M F
4
6 8
0
2
4
6
810
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
dotplot(variety~yield|site,barley,layout=c(3,2),aspect=0.7,groups=year,type=c("p","h"),auto.key=list(space="right"))
yield
SvansotaNo. 462
ManchuriaNo. 475
VelvetPeatlandGlabronNo. 457
Wisconsin No. 38Trebi
20 30 40 50 60
Grand Rapids Duluth
20 30 40 50 60
University FarmSvansota
No. 462Manchuria
No. 475Velvet
PeatlandGlabronNo. 457
Wisconsin No. 38Trebi
Morris
20 30 40 50 60
Crookston Waseca
19321931
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
dotplot(variety~yield|site,barley,layout=c(3,2),aspect=0.7,groups=year, auto.key =list(space = "right"))
yield
SvansotaNo. 462
ManchuriaNo. 475
VelvetPeatlandGlabronNo. 457
Wisconsin No. 38Trebi
20 30 40 50 60
Grand Rapids Duluth
20 30 40 50 60
University FarmSvansota
No. 462Manchuria
No. 475Velvet
PeatlandGlabronNo. 457
Wisconsin No. 38Trebi
Morris
20 30 40 50 60
Crookston Waseca
19321931
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
VADeaths
## Rural Male Rural Female Urban Male Urban Female## 50-54 11.7 8.7 15.4 8.4## 55-59 18.1 11.7 24.3 13.6## 60-64 26.9 20.3 37.0 19.3## 65-69 41.0 30.9 54.6 35.1## 70-74 66.0 54.3 71.1 50.0
class(VADeaths)
## [1] "matrix"
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
dotplot(VADeaths, groups = FALSE)
Freq
50−54
55−59
60−64
65−69
70−74
20 40 60
Rural Male Rural Female
50−54
55−59
60−64
65−69
70−74
Urban Male
20 40 60
Urban Female
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
dotplot(VADeaths,groups=FALSE,layout=c(4,1),aspect=0.7,origin=0,type=c("p","h"),main="Death Rates",xlab="Rate")
Death Rates
Rate
50−54
55−5960−64
65−6970−74
0 20 40 60
Rural Male
0 20 40 60
Rural Female
0 20 40 60
Urban Male
0 20 40 60
Urban Female
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: dotplot
dotplot(VADeaths,type ="o",auto.key=list(lines=TRUE,aspect=0.5,space="right"),main ="Death Rates",xlab="Rate")
Death Rates
Rate
50−54
55−59
60−64
65−69
70−74
20 40 60
Rural MaleRural FemaleUrban MaleUrban Female
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: stripplot
stripplot(depth~factor(mag),quakes,jitter.data=TRUE, aspect=0.5,alpha=0.9,xlab="Magnitude(Richter)",ylab="Depth (km)")
Magnitude(Richter)
Dep
th (
km)
200
400
600
4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.9 6 6.1 6.4
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: stripplot
Stripplot<-stripplot(sqrt(abs(residuals(lm(yield~variety+year+site))))~site,data=barley,groups=year,jitter.data=TRUE,auto.key=list(points=TRUE,lines=TRUE,columns=2),type=c("p", "a"), fun=mean,ylab = expression(abs("Residual Barley Yield")^{1 / 2}))
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: stripplot
StripplotR
esid
ual B
arle
y Y
ield
12
1
2
3
Grand Rapids Duluth University Farm Morris Crookston Waseca
1932 1931
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: stripplot
Qqplot<-qqmath(~ gcsescore | gender, Chem97, groups = score, aspect = "xy",f.value = ppoints(100), auto.key = list(space = "right"),xlab = "Standard Normal Quantiles",ylab = "Average GCSE Score")
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: stripplot
Qqplot
Standard Normal Quantiles
Ave
rage
GC
SE
Sco
re
3
4
5
6
7
8
−2 −1 0 1 2
M
−2 −1 0 1 2
F
0246810
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: xyplot
xyplot(yield ~ nitro | Variety + Block, data = Oats,type = "o")
nitro
yiel
d
60140
0.0 0.1 0.2 0.3 0.4 0.5 0.6
Golden RainI
MarvellousI
0.0 0.1 0.2 0.3 0.4 0.5 0.6
VictoryI
Golden RainII
MarvellousII
60140
VictoryII
60140
Golden RainIII
MarvellousIII
VictoryIII
Golden RainIV
MarvellousIV
60140
VictoryIV
60140
Golden RainV
MarvellousV
VictoryV
Golden RainVI
0.0 0.1 0.2 0.3 0.4 0.5 0.6
MarvellousVI
60140
VictoryVI
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: barchart
barchart(Class ~ Freq | Sex + Age,data = as.data.frame(Titanic),groups = Survived, stack = TRUE,layout = c(4, 1),auto.key = list(title = "Survived",columns = 2),scales = list(x = "free"))
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: barchart
Freq
1st
2nd
3rd
Crew
0 10 20 30 40 50
MaleChild
0 10 20 30
FemaleChild
0 200 400 600 800
MaleAdult
0 50 100 150
FemaleAdult
SurvivedNo Yes
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: splom
splom(~USArrests[c(3, 1, 2, 4)])
splom(~USArrests[c(3, 1, 2, 4)] | state.region,pscales = 0, type = c("g","p","smooth"))
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: splom, gráfico incondicional (1o exemplo)
Scatter Plot Matrix
UrbanPop60708090
60708090
30405060
30405060
Murder10
15 10 15
5
10
5 10
Assault200250300350
200 300
50100150200
50 150
Rape30
40 30 40
10
2010 20
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: splom, gráfico condicional (2o exemplo)
Scatter Plot Matrix
UrbanPop
Murder
Assault
Rape
Northeast
UrbanPop
Murder
Assault
Rape
South
UrbanPop
Murder
Assault
Rape
North Central
UrbanPop
Murder
Assault
Rape
West
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: parallel
parallel(~mtcars[c(1, 3, 4, 5, 6, 7)] | factor(cyl),mtcars, groups = carb, layout = c(3, 1),auto.key = list(space = "top", columns = 3))
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: parallel
mpg
disp
hp
drat
wt
qsec
Min Max
4
Min Max
6
Min Max
8
12
34
68
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Gráficos em 3D
O lattice também possui funções que permitem plotar gráficos em3D, sendo elas:
cloud: plota scatterplot em 3Dwireflame: plota superficies em 3Dlevelplot: plota gráfico falsa-corcontourplot: plota curvas de nível
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice:s scatterplot em 3D
Este exemplo procura encontrar a relação entre a profundidadeda ocorrência de um terremoto na ilha de Fiji com a longitudee dos mesmos.Aqui a análise será condicionada pela magnitude do terremoto.Como esta variável é contínua, ela será discretizada pela funçãoequal.count, em que são construídas 4 shingles (fatoresconstruídos a partir de intervalos com possibilidade de overlap).
quakes$Magnitude <- equal.count(quakes$mag, 4)cloud(depth ~ lat * long | Magnitude, data = quakes,
zlim = rev(range(quakes$depth)),screen = list(z = 105, x = -70), panel.aspect = 0.75,xlab = "Longitude", ylab = "Latitude", zlab = "Depth")
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: scatterplot em 3D
Longitude
Latitude
Depth
Magnitude
Longitude
Latitude
Depth
Magnitude
Longitude
Latitude
Depth
Magnitude
Longitude
Latitude
Depth
Magnitude
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: levelplot
levelplot(volcano)
row
colu
mn
10
20
30
40
50
60
20 40 60 80
100
120
140
160
180
200
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: contourplot
contourplot(volcano, cuts = 10, label = TRUE)
row
colu
mn
10
20
30
40
50
60
20 40 60 80
100
100
100
110
110
110
110
120130140
150150
160
160
170
170
180
180
190
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Lattice: wireframe
wireframe(volcano, panel.aspect = 0.5,zoom = 1,scales=list(arrows = FALSE),drape = TRUE, colorkey = TRUE)
20
4060
80
1020
3040
5060
100
120
140
160
180
rowcolumn
volcano
100
120
140
160
180
200
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Visualização de dados discretos
cor.Cars93 <-cor(Cars93[, !sapply(Cars93, is.factor)], use = "pair")Level.plot<-levelplot(cor.Cars93,scales=
list(x = list(rot = 90)))
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)
Visualização de dados discretos
Level.plot
row
colu
mn
Min.PricePrice
Max.PriceMPG.city
MPG.highwayEngineSize
HorsepowerRPM
Rev.per.mileFuel.tank.capacity
PassengersLength
WheelbaseWidth
Turn.circleRear.seat.roomLuggage.room
Weight
Min
.Pric
eP
rice
Max
.Pric
eM
PG
.city
MP
G.h
ighw
ayE
ngin
eSiz
eH
orse
pow
erR
PM
Rev
.per
.mile
Fue
l.tan
k.ca
paci
tyP
asse
nger
sLe
ngth
Whe
elba
seW
idth
Turn
.circ
leR
ear.s
eat.r
oom
Lugg
age.
room
Wei
ght
−0.5
0.0
0.5
1.0
David Henriques da Matta e Omar Abbara Visualização de dados Lattice e ggplot2 (uma introdução)