2012-03-14 10 views
5

This pregunta explica cómo añadir rejillas en específicos puntos por una trama reticular (es decir, el equivalente de dos abline ('s) para una trama normal). Mi problema es que cuando trato de agregar una cuadrícula regular (el equivalente a una llamada a la grilla() para una trama normal) ... el contenido de las tramas ... desaparece. Aquí está un ejemplo:cómo añadir una rejilla general a un enrejado xy.plot

B<-cbind(rnorm(100),rnorm(100), floor(runif(100,1,7)), floor(runif(100,1,3)), 
      floor(runif(100,1,4))) 
colnames(B)<-c("yval","xval","gval","p","cr") 
B<-as.data.frame(B) 
xyplot(B$yval~B$xval|B$p*B$cr,group=B$gval,main="Scatterplots by Cylinders and Gears", 
      ylab="Miles per Gallon", xlab="Car Weight",type="l",lwd=5, 
      panel=function(x,y){panel.grid()}) 

si se quita la última opción (es decir, panel de = función (x, y) {panel.grid()}), entonces i ver la ficha líneas, pero no la rejilla() . ¿Hay una manera de tener tanto la red y los datos de las líneas

Gracias de antemano,

Respuesta

5

Prueba esto:

xyplot(yval ~ xval | p*cr, data=B, group=gval, type=c("l","g"), lwd=5, 
     main="Scatterplots by Cylinders and Gears", 
     ylab="Miles per Gallon", xlab="Car Weight") 

he simplificado un poco la sintaxis porque se puede utilizar nombres de variable de usted data.frame si tiene el argumento data=. La clave es usar type=c("l","g"), lo que significa que las líneas + rejilla, y es equivalente a una función del panel que se parecería a

panel=function(...) { 
    panel.xyplot(...) 
    panel.grid() 
} 

En su caso, esto se debe a que se olvidó de añadir un panel.xyplot() que no hay puntos o línea eran dibujado. Si desea una grilla diferente, puede usar el código anterior y personalizar la llamada al panel.grid().

+0

gracias! ¿Sabrías cómo puedo cambiar los colores de la cuadrícula? – user189035

+0

@ user189035 Consulte 'help (panel.grid)': hay un argumento 'col ='. Tendrá que usar una función de panel personalizada como la de arriba, porque 'col.line =' no se puede pasar directamente a 'xyplot' sin interferir con el argumento' group = '. Es probable que termine con algo como 'panel.grid (h = -1, v = -1, col.line =" rojo ")'. – chl