Hi Dennis Thank you very much - the result was what I was looking for I looked at the help guide and wrongly interpreted things - I thinking of the case of density plots where there is only an x value (its been a long week). I had hoped to avoid going down the way you had gone but ended up with error messages which I could not decipher where they originated
The final graph of a number is very complicated and I was trying to keep it simple. Just now I had another go and had put a dummy y column in and used a constructed panel function to get a similar result for some but, your method would cater for all. My default plotting package for a while has been lattice due to the conditioning needed. I was thinking that lattice would do the conditioning and plot the curves. One good think is that I will have to brush up on plyr Regards Duncan At 13:18 29/10/2010, you wrote: >Hi: > >There are a few things wrong, I believe; hopefully my suggested fix is >what you're after... > >On Thu, Oct 28, 2010 at 3:35 PM, Duncan Mackay ><<mailto:mac...@northnet.com.au>mac...@northnet.com.au> wrote: >Hi All >I have regression coefficients from an experiment and I want to plot them >in lattice using panel curve but I have run into error messages. >I want an 3 panel conditioned plot of 2 curves of Treatment 2 in each >panel conditioned by Treatment1, the example curve expression is x+value*x^2 >A rough toy example to give an idea of what I want is: > >Data: >data = expand.grid(Treatment1 = LETTERS[1:3],Treatment2 = letters[1:2]) >data$value =seq(1.1,1.6,0.1) >data > Treatment1 Treatment2 value >1 A a 1.1 >2 B a 1.2 >3 C a 1.3 >4 A b 1.4 >5 B b 1.5 >6 C b 1.6 > >xyplot(value|Treatment1, data = data, > groups = Treatment2 > panel = function(value, groups){ > panel.curve(expr = x+ value*x^2, groups, from = -2, > to = 2) > } >) > >Firstly, xyplot takes a y ~ x | group argument; you have no ~ in the call. >Secondly, you really have no x-y data to plot; essentially, value is the >parameter to distinguish the slope of the quadratic term in your function >for each factor combination. It seems to me that you need to create the >data from the function using your current data frame 'data' as the >parameter set. This is a simple application of mapply (insert tongue in >cheek here) and a convenient way to call it is through the function >mdply() in the plyr package. Once we have that, then we can call xyplot() >more conventionally. > ># Package loads: >library(lattice) >library(plyr) > ># Your input data >data = expand.grid(Treatment1 = LETTERS[1:3],Treatment2 = letters[1:2]) >data$value =seq(1.1,1.6,0.1) > ># Function to create a data frame consisting of the two treatments, ># the sequence of x values from your panel.curve call and the function ># values in y. This is designed for one row of your data frame data. ># Notice that the function arguments match the names in the data frame. ># This is intentional. >f <- function(Treatment1, Treatment2, value) { > x <- seq(from = -2, to = 2, by = 0.02) > y <- x * value * x^2 > data.frame(Treatment1, Treatment2, x, y) > } > ># Call the function f on each row of data, and 'automagically' ># rbind the results together into a single data frame (note: mdply ># means 'mapply the rows of the parameter set data on the function ># f and output the results to a data frame') >dd <- mdply(data, f) > ># Run xyplot() on the newly created data frame using the user-defined ># key mykey: > >mykey <- list(corner = c(0.8, 0.8), > title = 'Treatment2', > cex.title = 1.2, > text = list(levels(dd$Treatment2), cex = 1), > lines = list(lty = 1, col = c('red', 'blue'), lwd = 1.4 )) >xyplot(y ~ x | Treatment1, data = dd, groups = Treatment2, > type = 'l', col.line = c('red', 'blue'), lwd = 1.4, key = mykey) > >HTH, >Dennis > > >I tried my one panel function but came up with more error messages so have >omitted it. > >Regards > >Duncan > >Duncan Mackay >Department of Agronomy and Soil Science >University of New England >ARMIDALE NSW 2351 >Email home: <mailto:mac...@northnet.com.au>mac...@northnet.com.au > >______________________________________________ ><mailto:R-help@r-project.org>R-help@r-project.org mailing list ><https://stat.ethz.ch/mailman/listinfo/r-help>https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide ><http://www.R-project.org/posting-guide.html>http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.