Jean-Marc Ottorini ottorini at nancy.inra.fr
Thu Jul 13 13:51:48 CEST 2006

```Dear R-help subscribers,

Many thanks for all the answers I received either by mail or through
the list, and that were most helpful.

For the sake of the list records, I wanted to post the solution, I
eventually could obtain, to the problem I  have submitted.

I am summarizing  the question here. It was how to use the panel
function "panel.curve" when the expression used in this function to to
add a fitted line to the points in each panel depends not only on x,
but also on the value of the conditioning variable for the considered
panel.

This solution is based on hints given to me by Deepayan Sarkar, it
relies on the use of "packet.number" and "panel.number":

xyplot(n ~ cg | di, data = myData,
scale = list(y = "free", x = "free"),
groups = bloc,
as.table = T,
xlab = "Cg",
ylab = "N / ha",
panel = function(x, y, subscripts, groups, packet.number = di,
panel.number, ...) {
panel.grid(h = -1, v = -1, col = "grey", lwd = 1, lty = 2)
panel.curve(expr =
f.fit(unique(rev(packet.number))[panel.number], a, b, a1, b1, x),
n = 50, curve.type = "l", col = "lightblue", ...)
panel.superpose(x, y, pch = c(1, 2), col =
c("deeppink","blue"),
panel.groups = "panel.xyplot", subscripts,
groups)
},

key = list( space = "top", transparent = TRUE, columns = 2,
points = list( pch = c(1, 2), col = c("deeppink", "blue") ),
text = list( c("bloc 3", "bloc 4"))),
)

- the arguments  "packet.number = di, panel.number" must appear on the
panel function prototype
- a, b, a1, b1 are parameters set to a certain value before calling
"xyplot"
- "unique" is needed to reduce to 1 the multiple instances of the value
of the conditioning variable di for a given panel (one for each point)
- I was surprised by the need to use "rev" in order for the interval of
the values to draw the curve  f.fit to correspond to the right panel.

Any further comment would be welcome

Best regards

Jean-Marc
----
Jean-Marc Ottorini               LERFoB, UMR INRA-ENGREF 1092
email  ottorini at nancy.inra.fr          INRA - Centre de Nancy
voice  +33-0383-394046                    F54280 - Champenoux
fax    +33-0383-394034                                 France

```