Etiquetas

, , , , ,

Dentro de lattice, existe una función llamada splom, útil para visualizar matrices de diagramas de dispersión (scatter plot matrices). Para conjuntos de datos de gran tamaño la función panel.hexbinplot del paquete hexbin es una mejor opción para el panel que usa splom por defecto. Veamos un ejemplo utilizando datos meteorológicos de MAPA-SIAR:

library(solaR)
library(hexbin)

aranjuez <- readMAPA(prov=28, est=3, start='01/01/2004', end='31/12/2010')

aranjuezDF <- subset(as.data.frame(getData(aranjuez)),
 select=c('TempMedia', 'TempMax', 'TempMin',
 'HumedadMedia', 'DirViento', 'EtPMon',
 'Precipitacion', 'G0'))

Construimos ahora una matriz combinando splom, panel.hexbinplot y también panel.loess. Además, incluyo algunos cambios a la función diag.panel para que muestre la densidad univariante de cada variable (adaptado de este mensaje):

splom(aranjuezDF,
 panel=panel.hexbinplot,
 diag.panel = function(x, ...){
 yrng <- current.panel.limits()$ylim
 d <- density(x, na.rm=TRUE)
 d$y <- with(d, yrng[1] + 0.95 * diff(yrng) * y / max(y) )
 panel.lines(d)
 diag.panel.splom(x, ...)
 },
 lower.panel = function(x, y, ...){
 panel.hexbinplot(x, y, ...)
 panel.loess(x, y, ..., col = 'red')
 },
 pscale=0, varname.cex=0.7
 )

Finalmente, es útil identificar algunos puntos. Esta tarea se puede realizar con cierta facilidad mediante panel.link.splom. Los puntos se eligen mediante el botón izquierdo del ratón, y se cierra la interacción pulsando cualquier otro botón.

trellis.focus('panel', 1, 1)
idx <- panel.link.splom(pch=13, cex=0.6, col='green')
aranjuezDF[idx,]