[R] Superpose two QQ-plots (gamma distribution) with, lattice function qqmath()

Yvonnick Noel yvonnick.noel at uhb.fr
Sat Jun 22 13:06:47 CEST 2013


David, Duncan,
> Hi
>
> Following on David's rate argument
>
> try (with modifications of pch and grid)
>
> rate <- 1/4
> shape = 8
> rate = c(rep(1/4,100),rep(1/3,100))

I don't think the problem is related to the rate argument, which can 
well be vectorized, as is the case for a number of arguments in distrib 
functions in R (note that you are redefining it as a vector above).

> x = rgamma(200,shape,rate)
> groups = gl(2,100,200,labels=LETTERS[1:2])
> dat = data.frame(x=x, gp=groups)
>
> qqmath(~ x,  data = dat,
>          groups = gp,
>          pch = 20,
>          type = c("p","g"),
>          distribution = function(x) qgamma(x,shape,rate),
>          panel = function(x,groups,...) {
>                    panel.qqmath(x,groups, ...)
>          })

This works! Thank you very much (I had spent some time on that).

I now try to add a QQ-line but face a new problem. Only one line 
appears, away from the points:
qqmath(~ x,  data = dat,
         groups = gp,
         pch = 20,
         type = c("p","g"),
         distribution = function(x) qgamma(x,shape,rate),
         panel = function(x,groups,...) {
                   panel.qqmath(x,groups, ...)
                   panel.qqmathline(x,groups,...)
         })

Any hint?

Thanks a lot for your help,

Yvonnick



More information about the R-help mailing list