On 2012-07-22 19:09, Ranjan Maitra wrote:
On Sun, 22 Jul 2012 18:58:39 -0700 Peter Ehlers <ehl...@ucalgary.ca>
wrote:

On 2012-07-22 18:03, Ranjan Maitra wrote:

[I had to dig back to see what your Q2 was. It's good to keep context.]

Try this:

     p <- bwplot(Error~Method | sigma + INU, data = z,
            scales = list(rot=90), horiz = FALSE,
            layout = c(5,3), col = "red")

     require(latticeExtra)
     useOuterStrips(p,
          strip = <<your sigma-strip function>>,
          strip.left = strip.custom(
              var.name = "INU", sep = " = ",
              strip.names = TRUE)
     )


This works!! Thanks very much!! May I also ask how I can put in a "%"
after the INU value? i.e., I want the labels to be INU = 0%, INU = 20%,
INU = 40% (instead of INU = 0, INU = 20 and INU = 40).

Define:

     INUExpr <- paste0("INU = ", c(0,20,40), "%")

Then

       useOuterStrips(p,
          strip = <<your sigma-strip function>>,
          strip.left = << your strip function with
                 var.name = INUExpr[which.panel] >>
     )

Peter Ehlers

Thanks, Peter! I have been trying things like this all afternoon. But i
still get the same problem:

The following, from your earlier e-mail works (cut-and-paste should be
fine):


library(lattice)
library(latticeExtra)
z <- cbind(rep(c("BIC", "ICL", "s_v", "Q_v", "sig-q",
                        "s_lsk", "s_lML", "s_mlsk", "s_mlML", "s_la8",
"s_haar"), each = 250), rep(c(5, 10, 20, 30, 50), each = 50))
z <- rbind(cbind(z, 0), cbind(z, 20), cbind(z, 40))
z <- cbind(z, rnorm(n = nrow(z)))
z <- as.data.frame(z)
names(z) <- c("Method", "sigma", "INU", "Error")
sigma <- as.numeric(levels(z$sigma))
sigmaExprList <- lapply(sigma, function(s) bquote(italic(sigma) == .
(s))) sigmaExpr <- as.expression(sigmaExprList)



p <- bwplot(Error~factor(Method, levels = unique(Method)) | sigma +
INU, data = z, scales = list(rot=90), horiz = FALSE,
           layout = c(3,5), col = "red")

    require(latticeExtra)

    useOuterStrips(p,
         strip =  function(which.given, which.panel, var.name,
           strip.levels = FALSE,
           strip.names = TRUE, ...) {
           strip.default(which.given, which.panel,
                         var.name = sigmaExpr[which.panel],
                         strip.levels = FALSE,
                         strip.names = TRUE, ...)
          },
                   strip.custom(
                                var.name = "INU", sep = " = ",
                                strip.names = TRUE))



However, this (edition of the latter) does not:

INUExpr <- paste0("INU = ", c(0,20,40), "%")

    useOuterStrips(p,
         strip =  function(which.given, which.panel, var.name,
           strip.levels = FALSE,
           strip.names = TRUE, ...) {
           strip.default(which.given, which.panel,
                         var.name = sigmaExpr[which.panel],
                         strip.levels = FALSE,
                         strip.names = TRUE, ...)
          },
         strip.left = function(which.given, which.panel, var.name,
           strip.levels = FALSE,
           strip.names = TRUE, ...) {
                   strip.custom(
             var.name = INUExpr[which.panel],
             strip.names = TRUE, ...)
                 }
    )


Clearly, I am doing something wrong in defining the strip function. (It
does not help that i am not completely at home with it.)  Can you or
someone please help some more?

Actually, it would work if you made strip.left a more accurate
copy of your strip function. But I hadn't taken a close enough
look at your strip function. I don't think it's needed at all.
Try this:

   p <- bwplot(Error ~ Method | sigma + INU, data = z,
         scales = list(rot=90), horiz = FALSE,
         layout = c(5,3), col = "red")

   useOuterStrips(p,
      strip = strip.custom(
           factor.levels = sigmaExpr),
      strip.left = strip.custom(
           factor.levels = INUExpr)
   )

BTW, you don't need the italic() on sigma - it does nothing in plotmath.

Yes, thanks for this and also the corrections. One last question (I
guess):

my sigmas are no longer in the order of 5, 10, 20, 30, 50. How do I fix
that?

Just reset the levels of z$sigma (and also redefine sigmaExpr):

  z$sigma <- factor(z$sigma,
                  levels = c(5,10,20,30,50))  # new levels order

  sigmaExprList <- lapply(as.numeric(levels(z$sigma)),
                          function(s) bquote(sigma == .(s)))
  sigmaExpr <- as.expression(sigmaExprList)
  INUExpr <- paste0("INU = ", c(0,20,40), "%")

  p <- bwplot(Error ~ Method | sigma + INU, data = z,
         scales = list(rot=90), horiz = FALSE,
         layout = c(5,3), col = "red")

  useOuterStrips(p,
     strip = strip.custom(
          factor.levels = sigmaExpr),
     strip.left = strip.custom(
          factor.levels = INUExpr)
  )

Peter Ehlers


Thanks again!!

Ranjan

____________________________________________________________
FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your 
desktop!

______________________________________________
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.


______________________________________________
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