5 dic 2012

Cambiando colores y leyendas en los gráficos con Lattice

Los gráficos con el paquete Lattice son una manera de mostrar datos multivariados en R. Deepayan Sarkar, el autor de Lattice, ha escrito un libro fantástico sobre visualización de datos multivariado con R. Sin embargo, a menudo hay que remitirse a las páginas de ayuda para recordar cómo establecer y cambiar la leyenda y la forma de garantizar que la leyenda a utilizar tenga los mismos colores que el gráfico. Por lo que se muestra en un ejemplo para futuras referencias.

Finalmente, desea obtener el siguiente resultado:


Inicialmente se hace un gráfico de barras simple, utilizando los datos de seguros establecidos en el paquete MASS.
library(MASS) 
library(lattice)
## Plot the claims frequency against age group by engine size and district
barchart(Claims/Holders ~ Age | Group, groups=District,
         data=Insurance, origin=0, auto.key=TRUE)


Para cambiar la leyenda se especifica una lista con las diferentes opciones de auto.key. Aquí se fijan los elementos de la leyenda junto a la otra, se añade un título para la leyenda y se cambia el tamaño del fuente:

barchart(Claims/Holders ~ Age | Group, groups=District,
         data=Insurance, main="Claims frequency", 
         auto.key=list(space="top", columns=4, 
                       title="District", cex.title=1))


Finalmente, usar una función de panel propia, pero cuando se hace la leyenda se muestran los puntos de forma predeterminada. Así que, ¿cómo puedo cambiar esto? En el siguiente paso es crear un gráfico de línea y especificar la leyenda para mostrar líneas en lugar de los puntos predeterminados:

xyplot(Claims/Holders ~ Age | Group, groups=District,
       data=Insurance, t="l", main="Claims frequency",
       auto.key=list(space="top", columns=4, 
                     title="District", cex.title=1,
                     lines=TRUE, points=FALSE))


Ahora es interesante cambiar los colores. Es fácil cambiar la configuración de color de gráficos en Lattice cambiando los parámetros por defecto en lugar de juguetear con los parámetros de color en las funciones Lattice en sí. Este enfoque también garantiza que los colores de la leyenda se alinearán automáticamente con los colores de los gráficos. Luego la configuración por defecto en Lattice es:

show.settings()


Vamos a cambiar los colores de una de las paletas RColorBrewer.
library(RColorBrewer)
display.brewer.all()


Usamos los azules, así que para el gráfico de barras cambiamos el polígono , el borde y el fondo:


myColours <- brewer.pal(6,"Blues")

my.settings <- list(
  superpose.polygon=list(col=myColours[2:5], border="transparent"),
  strip.background=list(col=myColours[6]),
  strip.border=list(col="black")
)
Una lista completa de todos los parámetros es retornada por la función trellis.par.get (). Se pueden cambiar los ajustes por defecto a través trellis.par.set (My.Settings) a nivel mundial, pero se recomienda usar el argumento par.settings en ​​la función de Lattice para cambiarlo localmente. Ahora unimos todo, cambié la configuración de color y leyendas en la siguiente declaración, de una manera similar a la anterior para el gráfico de linea.
barchart(Claims/Holders*100 ~ Age | Group, groups=District,
         data=Insurance, origin=0, 
         main="Motor insurance claims frequency", 
         xlab="Age", ylab="Claims frequency %",
         scales=list(alternating=1),                  
         auto.key=list(space="top", columns=4, 
                       points=FALSE, rectangles=TRUE,
                       title="District", cex.title=1),
         par.settings = my.settings,
         par.strip.text=list(col="white", font=2),
         panel=function(x,y,...){
               panel.grid(h=-1, v=0); 
               panel.barchart(x,y,...)
               }
         )

Fuente Original: http://lamages.blogspot.com/2012/12/changing-colours-and-legends-in-lattice.html#more

No hay comentarios :

Publicar un comentario