Dear list, I have 2 data sets such as: > head(calib20090730b) color XR XG XB L1_1 L1_2 L1_3 1 1 87 55 62 116 124.0 100 2 2 164 125 134 204 203.0 153 3 3 118 64 98 157 101.0 139 4 4 65 72 72 102 111.0 135 5 5 142 95 112 176 161.5 133 6 6 89 113 112 125 128.0 195 > head(refpanel) color B G R NIR1 NIR2 1 1 0.07 0.10 0.17 0.29 0.43 2 2 0.24 0.32 0.63 0.85 0.87 3 3 0.34 0.19 0.15 0.40 0.86 4 4 0.06 0.14 0.11 0.14 0.18 5 5 0.42 0.22 0.31 0.56 0.86 6 6 0.42 0.47 0.20 0.24 0.43 > My goal is to use either xyplot() or ggplot (qplot() ?) or any other better way for simplifying the following syntax and making a nicer graphic: par(mfrow=c(3,5),pty="s") plot(calib20090730b$XR,refpanel$B,xlab="rawR",ylab="refB") plot(calib20090730b$XR,refpanel$G,xlab="rawR",ylab="refG") plot(calib20090730b$XR,refpanel$R,xlab="rawR",ylab="refR") plot(calib20090730b$XR,refpanel$NIR1,xlab="rawR",ylab="refNIR1") plot(calib20090730b$XR,refpanel$NIR2,xlab="rawR",ylab="refNIR2") and so on for calib20090730b$XG and calib20090730b$XB I've used melt() in this way: > datos1 <- melt(calib20090730b,id="color") > datos2 <- melt(refpanel,id="color") > datos <- rbind(datos1,datos2) > head(datos) color variable value 1 1 XR 87 2 2 XR 164 3 3 XR 118 4 4 XR 65 5 5 XR 142 6 6 XR 89 and cast() to create > datos3 <- cast(datos,...~variable) > head(datos3) color XR XG XB L1_1 L1_2 L1_3 B G R NIR1 NIR2 1 1 87 55 62 116 124.0 100 0.07 0.10 0.17 0.29 0.43 2 2 164 125 134 204 203.0 153 0.24 0.32 0.63 0.85 0.87 3 3 118 64 98 157 101.0 139 0.34 0.19 0.15 0.40 0.86 4 4 65 72 72 102 111.0 135 0.06 0.14 0.11 0.14 0.18 5 5 142 95 112 176 161.5 133 0.42 0.22 0.31 0.56 0.86 6 6 89 113 112 125 128.0 195 0.42 0.47 0.20 0.24 0.43 but I'm stuck there. I think that I would need something like color XR XG XB L1_1 L1_2 L1_3 RefVal Band 1 1 87 55 62 116 124.0 100 0.07 B 2 2 164 125 134 204 203.0 153 0.24 B 3 3 118 64 98 157 101.0 139 0.34 B 4 4 65 72 72 102 111.0 135 0.06 B 5 5 142 95 112 176 161.5 133 0.42 B 6 6 89 113 112 125 128.0 195 0.42 B ... so that I could use xyplot(RefVal ~ XR | Band, data=datosX) but do not get to that. Don't even know if the problem is at the melt() or cast() level. I've also tried reshape(). Any help, advice and/or pointer to an appropriate tutorial would be appreciated. Thanks Agus -- Dr. Agustin Lobo Institut de Ciencies de la Terra "Jaume Almera" (CSIC) LLuis Sole Sabaris s/n 08028 Barcelona Spain Tel. 34 934095410 Fax. 34 934110012 email: Agustin.Lobo at ija.csic.es http://www.ija.csic.es/gt/obster