[R] Lattice: How to draw curves from given formulae

Deepayan Sarkar deepayan.sarkar at gmail.com
Tue Jul 22 22:31:57 CEST 2008


On 7/22/08, John Smith <zmring at gmail.com> wrote:
> Thanks, Deepayan,
>
>  I actually want to have a picture like the Figure 5.9 in "Mixed-Effects
>  Models in S and S-PLUS", which have a separate panel for each function and
>  has the function name been printed in strip.

xyplot(linear(d) + logistic(d) + umbrella(d) ~ d,
      data = list(d = seq(-5, 5, length = 101)),
      type = "l", outer = TRUE)

There are several ways to make the strip labels just the names; the
simplest is to create a data frame with all the necessary columns
beforehand.

-Deepayan

>
>  Thanks
>
>
>
>  On Tue, Jul 22, 2008 at 1:08 PM, Deepayan Sarkar <deepayan.sarkar at gmail.com>
>  wrote:
>
>
>  > On 7/21/08, John Smith <zmring at gmail.com> wrote:
>  > > Dear R Users:
>  > >
>  > >  I have a list function as:
>  > >  Flat:  y = 0
>  > >  Linear: y = -(1.65/8)d
>  > >  Logistic: y = 0.015 - 1.73/{1+exp[1.2(4-d)]}
>  > >  Umbrella: y= -(1.65/3)d + (1.65/36)d^2
>  > >  Emax: y = -1.81d/(0.79+d)
>  > >  Sigmoid Emax: y = -1.70d^5/(4^5+d^5)
>  > >
>  > >  And want draw the figure as attached (those material are extracted from
>  > a
>  > >  paper). Could anyone give me a sample code to do this?
>  >
>  > The attachment didn't come through, but here's one approach (with
>  > three of your functions):
>  >
>  > linear <- function(d) -(1.65/8) * d
>  > logistic <- function(d) 0.015 - 1.73 / (1 + exp(1.2 * (4-d)))
>  > umbrella <- function(d) -(1.65/3) * d + (1.65 / 36) * d^2
>  >
>  > xyplot(linear(d) + logistic(d) + umbrella(d) ~ d,
>  >       data = list(d = seq(-5, 5, length = 101)),
>  >       type = "l",
>  >       auto.key = list(lines = TRUE, points = FALSE))
>  >
>  > -Deepayan



More information about the R-help mailing list