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.

Reply via email to