Re: [R] lattice question: removing strips
Dear Martin, Would - library(latticeExtra) useOuterStrips(p) - be useful for you? Gerrit. -- Message: 1 Date: Mon, 10 Feb 2014 14:12:45 +0200 (EET) From: Martin Ivanov To: Pascal Oettli Cc: r-help@r-project.org Subject: Re: [R] lattice question: removing strips Message-ID: <999135689.229399.1392034366300.javamail.apa...@mail21.abv.bg> Content-Type: text/plain; charset="UTF-8" Dear Pascal, Thank You very much for Your reply. Here is a minimal working example: library(lattice); # this is with both strips plotted: data <- data.frame(x=1:5, y=6:10, f1=c("a1", "a1", "a1", "a2", "a3"), f2=c("b1", "b2", "b2", "b1", "b2")); p <- xyplot(y ~ x | f1 + f2, data=data) print(p); # and this is my attempt to only plot the strips for the second conditioning variable, i.e. for f2: my.strip <- function(which.given, strip.levels, ...) { if(which.given == 1) { return(FALSE); } else { strip.default(which.given=which.given, strip.levels=c(TRUE, FALSE), ...); } } p1 <- xyplot(y ~ x | f1 + f2, data=data, strip=my.strip) print(p1); #As You can see, here I do not get the strips for f1 potted, but there is an empty space below the strips for f1, which I cannot get rid of. I only want to show the strips for f2. Directly below them I want to see the panels themselves, instead of an empty space for the missing f1 strips. Any suggestions? Best regards, Martin __ 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.
Re: [R] lattice question: removing strips
Hi Martin If you only had 1 strip then strip = FALSE would suffice. With 2 I think you are getting into the realm of strip.default because of the first 2 arguments strip.default(which.given, which.panel, ) and having to modify it An easy solution is library(latticeExtra) useOuterStrips(strip = FALSE, xyplot(y ~ x | f1 + f2, data=data, strip = FALSE) ) and to change the strip background to blank or whatever colour useOuterStrips(strip = FALSE, xyplot(y ~ x | f1 + f2, data=data, strip = FALSE, par.settings = list(strip.background = list(col = "transparent")) ) ) you can format strip.left in the useOuterStrips function. See ?latticeExtra::useOuterStrips for details And now to bed Regards Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mac...@northnet.com.au -Original Message- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Martin Ivanov Sent: Monday, 10 February 2014 22:13 To: Pascal Oettli Cc: r-help@r-project.org Subject: Re: [R] lattice question: removing strips Dear Pascal, Thank You very much for Your reply. Here is a minimal working example: library(lattice); # this is with both strips plotted: data <- data.frame(x=1:5, y=6:10, f1=c("a1", "a1", "a1", "a2", "a3"), f2=c("b1", "b2", "b2", "b1", "b2")); p <- xyplot(y ~ x | f1 + f2, data=data) print(p); # and this is my attempt to only plot the strips for the second conditioning variable, i.e. for f2: my.strip <- function(which.given, strip.levels, ...) { if(which.given == 1) { return(FALSE); } else { strip.default(which.given=which.given, strip.levels=c(TRUE, FALSE), ...); } } p1 <- xyplot(y ~ x | f1 + f2, data=data, strip=my.strip) print(p1); #As You can see, here I do not get the strips for f1 potted, but there is an empty space below the strips for f1, which I cannot get rid of. I only want to show the strips for f2. Directly below them I want to see the panels themselves, instead of an empty space for the missing f1 strips. Any suggestions? Best regards, Martin > Оригинално писмо >От: Pascal Oettli >Относно: Re: [R] lattice question: removing strips >До: Martin Ivanov >Изпратено на: Понеделник, 2014, Февруари 10 12:56:21 EET > > >Hello, > >Please provide a "commented, minimal, self-contained, reproducible >code", as requested. > >Regards, >Pascal > >On 10 February 2014 19:48, Martin Ivanov wrote: >> Dear lattice users, >> >> I am trying to produce a lattice graph with two conditioning variables. >> My problem is that I only want to show the strips for the levels of the >> second conditioning variable. >> I want to remove the strips for the levels of the first conditioning >> variable. >> I tried with the strip function, but if I tell it to return FALSE or NULL >> whenever which.given == 1, I just get empty space below the strips for the >> second conditioning variable. And I want to remove that space altogether. >> Is it somehow achievable in lattice? >> >> I also tried setting layout.heights$strip to 0 when which.given == 1, >> but it seems to only work globally, so either >> the strips for both conditioning variables vanish, or both are present. >> >> Any suggestions will be appreciated. >> >> >> Best regards, >> >> __ >> 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. > > > >-- >Pascal Oettli >Project Scientist >JAMSTEC >Yokohama, Japan > __ 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.
Re: [R] lattice question: removing strips
Dear Pascal, Thank You very much for Your reply. Here is a minimal working example: library(lattice); # this is with both strips plotted: data <- data.frame(x=1:5, y=6:10, f1=c("a1", "a1", "a1", "a2", "a3"), f2=c("b1", "b2", "b2", "b1", "b2")); p <- xyplot(y ~ x | f1 + f2, data=data) print(p); # and this is my attempt to only plot the strips for the second conditioning variable, i.e. for f2: my.strip <- function(which.given, strip.levels, ...) { if(which.given == 1) { return(FALSE); } else { strip.default(which.given=which.given, strip.levels=c(TRUE, FALSE), ...); } } p1 <- xyplot(y ~ x | f1 + f2, data=data, strip=my.strip) print(p1); #As You can see, here I do not get the strips for f1 potted, but there is an empty space below the strips for f1, which I cannot get rid of. I only want to show the strips for f2. Directly below them I want to see the panels themselves, instead of an empty space for the missing f1 strips. Any suggestions? Best regards, Martin > Оригинално писмо >От: Pascal Oettli >Относно: Re: [R] lattice question: removing strips >До: Martin Ivanov >Изпратено на: Понеделник, 2014, Февруари 10 12:56:21 EET > > >Hello, > >Please provide a "commented, minimal, self-contained, reproducible >code", as requested. > >Regards, >Pascal > >On 10 February 2014 19:48, Martin Ivanov wrote: >> Dear lattice users, >> >> I am trying to produce a lattice graph with two conditioning variables. >> My problem is that I only want to show the strips for the levels of the >> second conditioning variable. >> I want to remove the strips for the levels of the first conditioning >> variable. >> I tried with the strip function, but if I tell it to return FALSE or NULL >> whenever which.given == 1, I just get empty space below the strips for the >> second conditioning variable. And I want to remove that space altogether. >> Is it somehow achievable in lattice? >> >> I also tried setting layout.heights$strip to 0 when which.given == 1, >> but it seems to only work globally, so either >> the strips for both conditioning variables vanish, or both are present. >> >> Any suggestions will be appreciated. >> >> >> Best regards, >> >> __ >> 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. > > > >-- >Pascal Oettli >Project Scientist >JAMSTEC >Yokohama, Japan > __ 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.
Re: [R] lattice question: removing strips
Hello, Please provide a "commented, minimal, self-contained, reproducible code", as requested. Regards, Pascal On 10 February 2014 19:48, Martin Ivanov wrote: > Dear lattice users, > > I am trying to produce a lattice graph with two conditioning variables. > My problem is that I only want to show the strips for the levels of the > second conditioning variable. > I want to remove the strips for the levels of the first conditioning variable. > I tried with the strip function, but if I tell it to return FALSE or NULL > whenever which.given == 1, I just get empty space below the strips for the > second conditioning variable. And I want to remove that space altogether. Is > it somehow achievable in lattice? > > I also tried setting layout.heights$strip to 0 when which.given == 1, but it > seems to only work globally, so either > the strips for both conditioning variables vanish, or both are present. > > Any suggestions will be appreciated. > > > Best regards, > > __ > 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. -- Pascal Oettli Project Scientist JAMSTEC Yokohama, Japan __ 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] lattice question: removing strips
Dear lattice users, I am trying to produce a lattice graph with two conditioning variables. My problem is that I only want to show the strips for the levels of the second conditioning variable. I want to remove the strips for the levels of the first conditioning variable. I tried with the strip function, but if I tell it to return FALSE or NULL whenever which.given == 1, I just get empty space below the strips for the second conditioning variable. And I want to remove that space altogether. Is it somehow achievable in lattice? I also tried setting layout.heights$strip to 0 when which.given == 1, but it seems to only work globally, so either the strips for both conditioning variables vanish, or both are present. Any suggestions will be appreciated. Best regards, __ 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.