[R] lattice question: removing strips

Duncan Mackay dulcalma at bigpond.com
Mon Feb 10 15:02:07 CET 2014

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: mackay at northnet.com.au

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Martin Ivanov
Sent: Monday, 10 February 2014 22:13
To: Pascal Oettli
Cc: r-help at 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 at 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 at 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.